image.png

1 初始化data

image.png

  1. data可能是函数(组件形式要求是一个函数,返回值是一个对象)或者 普通对象,并且找到props和methods
  2. 遍历data的key值,跟props和methods比对,不能存在to同名,因为最后都会代理到vm实例上。
  3. 代理data属性到vue实例上,这样vm.xx === vm._data.xx

image.png
使用Object.defineProperty 实现代理

2 DOM挂载-mount

image.png
1 不存在render函数,则先寻找template,如果还没有,则寻找el,至少找到一个配置,并作为模板
image.png
2 然后comlieToFunction编译为render/staticRenderFns,并挂载到配置options上