vue源码系列
文章平均质量分 54
故心v
越努力越幸运
展开
-
为何Vue采用异步渲染?
故心故心故心故心小故冲啊 文章目录为何Vue采用异步渲染? 为何Vue采用异步渲染? 因为响应式数据都是组件化的,也就是说,每一次更新都是渲染整个组件,如果是同步渲染,只要数据中一个数据进行了修改,就会使得整个组件重新去渲染,如果同时修改了多个数据就会更新多次.这样子子是非常消耗性能的. 而采用异步渲染的话,只需要更新一次,异步渲染主要采用的是nextTick这个方法,来清空队列. nextTick方法原理? 主要使用宏微任务来处理当前队列,首先会先判断当前环境是否支持promise,如果支持将采用.原创 2021-02-21 10:45:58 · 318 阅读 · 0 评论 -
Vue如何监听数组的变化?
故心故心故心故心小故冲啊 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Vue如何监听数组的变化?Vue为什么不能检测数组变动$set为啥能检测数组变动 Vue如何监听数组的变化? 理解: 使用函数劫持的方式,重写了数组的方法 Vue 将 data 中的数组,进行了原型链重写。指向了自己定义的数组原型方法,这样当调用数组 api 时,可以通知依赖更新.如果数组中包含着引用类型。会对数组中的引用类型再次进行监控 重写了数组中的原型的方法 1.获取数组中的原型方法,因为拦截.原创 2021-02-21 10:18:08 · 4524 阅读 · 0 评论 -
响应式页面渲染过程
故心故心故心故心小故冲啊 文章目录 function initData (vm: Component) { ... // observe data observe(data, true /* asRootData */) } 最重要的就是这一步,把数据添加到观察者中 也就是把数据添加到observe()这个方法 observe()这个方法干了什么? 将data数据变成可观察的Observe实例对象 Observe实例对象又干了啥? Observer`会对对象的每个属性进行劫持 怎么实现劫持?原创 2021-02-20 10:41:39 · 361 阅读 · 0 评论 -
new Vue实例化对象时会做哪些事?
故心故心故心故心小故冲啊 文章目录 当new Vue实例化对象的时候,最主要的就是执行this._init()方法,这个方法是在上面「初始化Vue构造函数」时调用initMixin()函数时给Vue.prototype上添加的 所以当我们在执行new Vue()的时候,最关键的就是执行_init()函数 给vm上添加$options,如果是非Component的话调用mergeOptions合并参数 初始化生命周期initLifecycle 初始化事件initEvents 初始化渲染initR.原创 2021-02-19 21:59:26 · 937 阅读 · 0 评论