2:初始化逻辑
1:initLifecycle()//绑定$parent/$root/$children
2:initEvents() //事件监听
3:initRender() //创建render函数
4:callHook(vm, 'beforeCreate') //组件创建之前的钩子
5:initInjections(vm) // 注入祖辈传递的数据
6:initState(vm) //组件数据化初始
1:创建_watchers
2:属性initProps()
3:方法initMethods()
4:数据响应处理initData(data)
1:data是函数直接执行
2:校验//data不能在Method,props中出现<br>
3:代理proxy()
4:响应处理observe()<br>执行过程中,出现一个对象,就创建一个Observer,<br>挂载一个__ob__属性,<br>有就直接返回ob<br><br>
1:isArray//如果式数组,走原型覆盖 src\core\observer\array.js<br>
2:obj//遍历处理<br><br>
1:创建每个ket对应的小管家dep
2:如果是对象,递归处理继续observe<br>//返回childOb实例
3:defineReactive
1:get()<br>
1:dep.depend() <br>//实际执行的是watcher的adddep()<br>//依赖收集dep与watcher是n对n的关系<br>
1:addDep()<br> //如果没有保存过关系,就保存<br> //创建watcher和dep的关系<br>//如果保存过了,反向创建dep和watcher的关系
2:childOb<br>//便利的对象是obj,递归返回<br>//主要用未来对象可能有属性的增删,数组元素的增删
1:dep.depend()<br>//对象内部的小管家要和当前的wathcer建立关系<br>//也创建子ok与wathcer关系
2:set()
1:设置值,赋值
2:如果有新对象,observe
3:通知更新dep.notigy()
5:initComputed
6:initWatch
7:initProvide(vm) // 继承
8:callHook(vm, 'created') //创建完成
3:执行$mount //如果设置了el
扩展$mount方法(解析el,template,生成渲染函数)<br>文件:entry-runtime-with-compiler.js
src\platforms\web\runtime\index.js<br>1.声明patch函数<br>2.实现$mount方法,执行挂载
创建一个mountComponent()