Vue源碼學習3之生命週期的初始化

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章