vue生命週期總結

看風景就發表於2018-08-22

vue2.x版本總共有8個生命週期鉤子,四個before,四個ed,再加上activated和deactivated兩個啟用鉤子,總共10個週期鉤子

1.鉤子說明

1. breforeCreate 建立前執行,此時 data: undefined $el: undefined

2. created 建立後執行,此時 data: 有值 $el: undefined
例項已經建立完成之後被呼叫。在這一步,例項已完成以下的配置:資料觀測(data observer),屬性和方法的運算,
watch/event 事件回撥。然而,掛載階段還沒開始,$el 屬性目前不可見。

3. beforeMount 載入前 此時 data: 有值 $el: (虛擬)
在掛載開始之前被呼叫:相關的 render 函式首次被呼叫,此時有了虛擬DOM

4. mounted 載入後html已經渲染 此時 data: 有值 $el: (真實)
服務端渲染不被呼叫,el 被新建立的 vm.$el 替換,並掛載到例項上去之後呼叫該鉤子,渲染為真實DOM

5. beforeUpdate 更新狀態前

6. updated 更新狀態後,服務端渲染不被呼叫
由於資料更改導致的虛擬 DOM 重新渲染和打補丁,在這之後會呼叫該鉤子。當這個鉤子被呼叫時,元件 DOM 已經更新,
所以你現在可以執行依賴於 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態,因為這可能會導致更新無限迴圈。

7. beforeDestroy 銷燬前(此處可以獲得this,來操作元件)
8. destroyed 銷燬後(此處不能獲得this,dom元素存在,只是不再受vue控制),服務端渲染不被呼叫
9. activated keep-alive元件啟用觸發,服務端渲染不被呼叫
10. deactivated keep-alive元件移除觸發,服務端渲染不被呼叫

2.鉤子圖示

相關文章