美文网首页
Vue源码解读--数据响应式

Vue源码解读--数据响应式

作者: key君 | 来源:发表于2019-10-10 17:00 被阅读0次
数据初始化

文件路径:src/core/instance/state.js

//判断重复,调用observe
initData() 

//返回一个observer实例
observe()
observer实例方法 判断数据对象的类型,做响应的处理

文件路径:src/core/observer/index.js

如果data里面是对象就会有一个observer实例与之对应
observer实例 构造函数判断里面传入的参数是数组的话 就特别处理
拦截数组7个方法 做额外更新
如果是对象的话,遍历对象keys,执行defineReactive
defineReactive()给data中每一个key定义数据劫持

维护管理若干watcher

文件路径:src/core/observer/dep.js

Dep.target是watcher 建立和watcher实例之间的关系

watcher

文件路径:src/core/observer/watcher.js

数据响应式总体流程

1.new Vue()
2.Vue._init initMixin()实现初始化  最后会走$mount
3.$mount扩展
4.$mount 会new watcher
5.watter getter
6.updateComponent
7.render渲染函数(html模板编译成的渲染函数)尝试调用getter属性
8.拦截属性的getter

相关文章

网友评论

      本文标题:Vue源码解读--数据响应式

      本文链接:https://www.haomeiwen.com/subject/mmzopctx.html