Vue.js的生命週期鉤子

實例 生命週期

beforeCreate:

    在實例初始化之後,數據觀測 (data observer)event/watcher事件配置之前被調用。

created:

    在實例創建完成後被立即調用。在這一步,實例已完成以下的配置:數據觀測 (data observer),屬性和方法的運算,watch/event 事件回調。然而,掛載階段還沒開始,$el屬性目前不可見

beforeMount:

    在掛載開始之前被調用:相關的render函數首次被調用

    該鉤子在服務器端渲染期間不被調用。

mounted:

    el被新創建的vm.$el替換,並掛載到實例上去之後調用該鉤子。如果 root 實例掛載了一個文檔內元素,當mounted被調用時vm.$el也在文檔內。

    注意mounted不會承諾所有的子組件也都一起被掛載。如果你希望等到整個視圖都渲染完畢,可以用vm.$nextTick替換掉mounted。

    該鉤子在服務器端渲染期間不被調用。

beforeUpdate:

    數據更新時調用,發生在虛擬 DOM 打補丁之前。這裏適合在更新之前訪問現有的 DOM,比如手動移除已添加的事件監聽器。

    該鉤子在服務器端渲染期間不被調用,因爲只有初次渲染會在服務端進行。

updated:

    由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之後會調用該鉤子。

    當這個鉤子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴於 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態。如果要相應狀態改變,通常最好使用計算屬性watcher而代之。

    注意updated不會承諾所有的子組件也都一起被重繪。如果你希望等到整個視圖都重繪完畢,可以用vm.$nextTick替換掉updated。

    該鉤子在服務器端渲染期間不被調用。

activated:

    keep-alive 組件激活時調用。

    該鉤子在服務器端渲染期間不被調用。

deactivated:

    keep-alive 組件停用時調用。

    該鉤子在服務器端渲染期間不被調用。

beforeDestroy

    實例銷燬之前調用。在這一步,實例仍然完全可用。

    該鉤子在服務器端渲染期間不被調用。

destroyed

    Vue 實例銷燬後調用。調用後,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷燬。

    該鉤子在服務器端渲染期間不被調用。

errorCaptured2.5.0+):

    當捕獲一個來自子孫組件的錯誤時被調用。此鉤子會收到三個參數:錯誤對象、發生錯誤的組件實例以及一個包含錯誤來源信息的字符串。此鉤子可以返回false 以阻止該錯誤繼續向上傳播。

------------------參考官方文檔