上一个章节我们降到了从创建Vue对象到BeforeCreated过程,其中第一个过程就是生命周期的初始化。这里我们讲会讲解生命周期的初始化过程进行了哪些操作。
export function initLifecycle (vm: Component) {
const options = vm.$options
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
}
initLifecycle函数便是生命周期的初始化函数,vm为传入函数的数据其实就是Vue对象。
变量options为获取创建Vue对象是传入的数据。
变量 parent用于获取此Vue对象的祖宗对象,如果存在祖宗对象在此祖宗对象的子对象数组中添加此节点。
vm.$parent设置此Vue对象的父对象。
vm.$root设置此Vue对象的根节点。
vm.$children用于初始化此Vue对象的子对象为空数组。
vm.$refs用于初始化此Vue对象的中的元素或者是子组件的注册引用信息为空对象。
vm._watcher用于初始化Vue对象的监听器为null。
vm._inactive用于初始化此Vue对象的活跃状态为null。
vm._directInactive用于初始化此Vue对象的暂停状态为false。
vm._isMounted用于初始化此Vue对象的挂载状态为false。
vm._isDestroyed用于初始化此Vue对象的销毁状态为false。
vm._isBeingDestroyed用于初始化此Vue对象的预销毁状态为false。