Vue2.0學習之路--生命週期鉤子

學習Vue有一些時間了,看完官網的API對生命週期鉤子講解,對Vue的生命週期鉤子還是一知半解。每個 Vue 實例在被創建時都要經過一系列的初始化過程,例如,需要設置數據監聽、編譯模板、將實例掛載到 DOM 並在數據變化時更新 DOM 等。同時在這個過程中也會運行一些叫做生命週期鉤子的函數,這給了用戶在不同階段添加自己的代碼的機會。

  1. 生命週期簡介
    在這裏插入圖片描述所有的生命週期鉤子自動綁定 this 上下文到實例中,因此你可以訪問數據,對屬性和方法進行運算。這意味着你不能使用箭頭函數來定義一個生命週期方法 (例如 created: () => this.fetchTodos())。
    1)beforeCreate:在實例初始化之後,數據觀測 (data observer) 和 event/watcher 事件配置之前被調用。
    2)created:在實例創建完成後被立即調用。在這一步,實例已完成以下的配置:數據觀測 (data observer),屬性和方法的運算,watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。
    3)beforeMount:在掛載開始之前被調用:相關的 render 函數首次被調用。
    4)mounted:el 被新創建的替換,並掛載到實例上去之後調用該鉤子。注意 mounted 不會承諾所有的子組件也都一起被掛載。
    5)beforeUpdate:數據更新時調用,發生在虛擬 DOM 打補丁之前。這裏適合在更新之前訪問現有的 DOM,比如手動移除已添加的事件監聽器。該鉤子在服務器端渲染期間不被調用,因爲只有初次渲染會在服務端進行。
    6)updated: 由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之後會調用該鉤子。當這個鉤子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴於 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態。如果要相應狀態改變,通常最好使用計算屬性或 watcher 取而代之。注意 updated 不會承諾所有的子組件也都一起被重繪。
    7)activated:keep-alive 組件激活時調用。
    8)deactivated:keep-alive 組件停用時調用。
    9)beforeDestroy:實例銷燬之前調用。在這一步,實例仍然完全可用。
    10)destroyed:Vue 實例銷燬後調用。調用後,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷燬。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章