VUE 执行流程 个人笔记

660 阅读1分钟

初始化Dtata

初始化运行在VUE内部属性上加入componennts directive等定义一些全局API 像Vue.use Vue.mixin

实例化VM组件的时候会根据data属性

initData 会对option.data属性进行遍历添加监听,这里会有展开属性的操作,进入defineReactive?1函数。创建ObjectDefinePrototype闭包,将dep实例存放在内部引用,defineReactive?1定义get set属性

组件的child.$mount 这是单页面形式 如果单使用VUE 提供el的话 是直接进入mount方法 mountComponent

创建Watcher实例,绑定在当前的实例,传入updateComponent方法,也是就VM_update

在watcher构造函数中获取当前的value,进入this.get,设置Dep.target为当前的watchert(因为defineReactive 方法里是额外调用的,需要设置全局变量来获取,Dep.target 是当前的watcher实例)这个时候之前在initData已经注册过的会开始调用对象的get属性,

webpack把模板转换为_c函数 分为静态不编译和动态编译的数组 [_c('h1', [_vm._v(_vm._s(_vm.msgaaa))])]) 生产Vnode

问题1

调用属性get出错怎么办