上一個章節我們降到了從創建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。