前言

执行this._init()事件

初始化生命周期(initLifecycle()函数分析)
给实例初始化了一些属性,以$开头的供用户使用的外部属性,以_开头的供内部使用的内部属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
export function initLifecycle (vm: Component) {
const options = vm.$options

// locate first non-abstract parent
let parent = options.parent
if (parent && !options.abstract) {
while (parent.$options.abstract && parent.$parent) {
parent = parent.$parent
}
parent.$children.push(vm)
}

vm.$parent = parent
vm.$root = parent ? parent.$root : vm

vm.$children = []
vm.$refs = {}

vm._watcher = null
vm._inactive = null
vm._directInactive = false
vm._isMounted = false
vm._isDestroyed = false
vm._isBeingDestroyed = false
}

初始化even事件(initEvents())
初始化渲染(initRender(vm))
触发beforeCreate钩子(callHook(vm, ‘beforeCreate’))
初始化Injections(initInjections(vm))
初始化状态(initState(vm))
1,初始化props
2,初始化methods
3,初始化data
4,初始化computed
5,初始化watch
初始化Provide(initProvide(vm))
触发Create钩子(callHook(vm, ‘created’))
最后检测vm是否有el属性,有就调用vm.$mount()

执行vm.$mount()

执行vm.$mount() (解析template /el并转换为渲染函数 )