總共分為8個階段創建前/后,載入前/后,更新前/后,銷毀前/后。
創建前/后: 在beforeCreated階段,vue實例的掛載元素$el和數據對象Data都為undefined,還未初始化。created階段,vue實例的數據對象data有了,el還沒有
載入前/后:在beforeMount階段,vue實例的$el和data都初始化了,但還是掛載之前為虛擬的dom節點,data.message還未替換。在mounted階段,vue實例掛載完成,data.message成功渲染。
更新前/后:當data變化時,會觸發beforeUpdate和updated方法。
銷毀前/后:在執行destroy方法后,對data的改變不會再觸發周期函數,說明此時vue實例已經解除了事件監聽以及和dom的綁定,但是dom結構依然存在。
activated: keep-alive組件激活時調用
deactivated: keep-alive組件銷毀時調用
errorCaptured: 當捕獲一個來自子孫組件的錯誤時被調用
父子組件生命周期執行順序
創建與掛載
父beforeCreate > 父created > 父beforeMount > 子beforeCreate > 子created > 子beforeMount > 子mounted > 父mounted
更新
父beforeUpdate > 子beforeUpdate > 子updated > 父updated
銷毀
父beforeDestroy > 子beforeDestroy > 子destroyed > 父destroyed
父子組件及mixin的生命周期執行順序
mixin的生命周期鈎子在組件的生命周期鈎子之前執行
在父組件中引入了mixin,生命周期順序如下:
mixin的beforeCreate > 父beforeCreate > mixin的created > 父created > mixin的beforeMount > 父beforeMount > 子beforeCreate > 子created > 子beforeMount > 子mounted > mixin的mounted >父mounted