摘要: 创建vue实例和创建组件的流程基本一致 首先做一些初始化的操作,主要是设置一些私有属性到实例中 运行生命周期钩子函数****beforeCreate 进入注入流程:处理属性、computed、methods、data、provide、inject,最后使用代理模式将它们挂载到实例中 运行生命周期钩子 阅读全文
posted @ 2024-04-28 22:01 shmillly959 阅读(40) 评论(0) 推荐(0)
摘要: diff的时机 当组件创建时,以及依赖的属性或数据变化时,会运行一个函数,该函数会做两件事: 运行_render生成一棵新的虚拟dom树(vnode tree) 运行_update,传入虚拟dom树的根节点,对新旧两棵树进行对比,最终完成对真实dom的更新 核心代码如下: // vue构造函数 fu 阅读全文
posted @ 2024-04-28 21:57 shmillly959 阅读(163) 评论(0) 推荐(0)
摘要: vue官方阐述:https://cn.vuejs.org/v2/guide/reactivity.html 响应式数据的最终目标,是当对象本身或对象属性发生变化时,将会运行一些函数,最常见的就是render函数。 在具体实现上,vue用到了几个核心部件: Observer Dep Watcher S 阅读全文
posted @ 2024-04-28 21:55 shmillly959 阅读(64) 评论(0) 推荐(0)
摘要: v-model即可以作用于表单元素,又可作用于自定义组件,无论是哪一种情况,它都是一个语法糖,最终会生成一个属性和一个事件 当其作用于表单元素时,vue会根据作用的表单元素类型而生成合适的属性和事件。例如,作用于普通文本框的时候,它会生成value属性和input事件,而当其作用于单选框或多选框时, 阅读全文
posted @ 2024-04-28 21:51 shmillly959 阅读(98) 评论(0) 推荐(0)
摘要: 什么是虚拟dom? 虚拟dom本质上就是一个普通的JS对象,用于描述视图的界面结构 在vue中,每个组件都有一个render函数,每个render函数都会返回一个虚拟dom树,这也就意味着每个组件都对应一棵虚拟DOM树 为什么需要虚拟dom? 在vue中,渲染视图会调用render函数,这种渲染不仅 阅读全文
posted @ 2024-04-28 21:49 shmillly959 阅读(45) 评论(0) 推荐(0)
摘要: prop 最常见的组件通信方式之一,由父组件传递到子组件 event 最常见的组件通信方式之一,当子组件发生了某些事,可以通过event通知父组件 style和class 父组件可以向子组件传递style和class,它们会合并到子组件的根元素中 示例 父组件 <template> <div id= 阅读全文
posted @ 2024-04-28 21:44 shmillly959 阅读(50) 评论(0) 推荐(0)
摘要: debounce 定义 防抖(debounce):不管事件触发频率多高,一定在事件触发n秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,就以新的事件的时间为准,n 秒后才执行,总之,触发完事件 n 秒内不再触发事件,n秒后再执行。(类比乘坐电梯) 应用场景 窗口大小变化,调整样式 wi 阅读全文
posted @ 2020-09-24 15:03 shmillly959 阅读(118) 评论(0) 推荐(0)
摘要: 概念 ECMAScript变量包含两种不同数据类型的值:基本数据类型和引用数据类型。 基本数据类型:名值存储在栈内存中; 引用数据类型:名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值。 目前基本数据类型有:Boolean、Null、Undefined、Number、 阅读全文
posted @ 2020-09-24 14:22 shmillly959 阅读(111) 评论(0) 推荐(0)