第三步: vm的生命周期相关变量初始化
1 | export function initLifecycle (vm: Component) { |
第四步: vm的事件监听初始化
1 | export function initEvents (vm: Component) { |
初始化呈现
initRender(vm)
1 | export function initRender (vm: Component) { |
调用生命周期钩子
1 | callHook(vm, 'beforeCreate') |
第五步: vm的状态初始化,prop/data/computed/method/watch都在这里完成初始化,因此也是Vue实例create的关键。
初始注入
提示:
provide和inject绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。 然后我们来看一下initInjections和initProvide的执行顺序:
先初始化initInjections
1 | export function initInjections (vm: Component) { |
然后运行initState
1 | export function initState (vm: Component) { |
接着定义我们的initProvide
1 | export function initProvide (vm: Component) { |