vue 生命週期 mixin執行順序
總共分為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