基于Vue實例生命周期(全面解析)
前面的話
Vue實例在創(chuàng)建時有一系列的初始化步驟,例如建立數(shù)據觀察,編譯模板,創(chuàng)建數(shù)據綁定等。在此過程中,我們可以通過一些定義好的生命周期鉤子函數(shù)來運行業(yè)務邏輯。本文將詳細介紹Vue實例的生命周期
圖示
下圖是Vue實例生命周期的圖示

解釋
接下來,根據提供的生命周期鉤子,對Vue實例各個階段的情況進行詳細說明
【beforeCreate】
在實例開始初始化時同步調用。此時數(shù)據觀測、事件等都尚未初始化
【created】
在實例創(chuàng)建之后調用。此時已完成數(shù)據觀測、事件方法,但尚未開始DOM編譯,即未掛載到document中
【beforeMount】
在mounted之前運行
【mounted】
在編譯結束時調用。此時所有指令已生效,數(shù)據變化已能觸發(fā)DOM更新,但不保證$el已插入文檔
【beforeUpdate】
在實例掛載之后,再次更新實例(例如更新 data)時會調用該方法,此時尚未更新DOM結構
【updated】
在實例掛載之后,再次更新實例并更新完DOM結構后調用
【beforeDestroy】
在開始銷毀實例時調用,此刻實例仍然有效
【destroyed】
在實例被銷毀之后調用。此時所有綁定和實例指令都已經解綁,子實例也被銷毀
【activated】
需要配合動態(tài)組件keep-live屬性使用。在動態(tài)組件初始化渲染的過程中調用該方法
【deactivated】
需要配合動態(tài)組件keep-live屬性使用。在動態(tài)組件初始化移出的過程中調用該方法
簡單實例
下面寫一個簡單實例來更清楚地了解Vue實例內部的運行機制
<div id="example">{{message}}</div>
<script>
var vm = new Vue({
el: '#example',
data:{
message:'match'
},
beforeCreate(){
console.log('beforeCreate');
},
created(){
console.log('created');
},
beforeMount(){
console.log('beforeMount');
},
mounted(){
console.log('mounted');
},
beforeUpdate(){
console.log('beforeUpdate');
},
updated(){
console.log('updated');
//組件更新后調用$destroyed函數(shù),進行銷毀
this.$destroy();
},
beforeDestroy(){
console.log('beforeDestroy');
},
destroyed(){
console.log('destroyed');
},
})
</script>

以上這篇基于Vue實例生命周期(全面解析)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue-pdf插件實現(xiàn)pdf文檔預覽方式(自動分頁預覽)
這篇文章主要介紹了vue-pdf插件實現(xiàn)pdf文檔預覽方式(自動分頁預覽),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
vue2結合element-ui實現(xiàn)TreeSelect樹選擇功能
這篇文章主要為大家詳細介紹了vue2如何結合element-ui實現(xiàn)TreeSelect樹選擇功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2024-03-03
vue項目實現(xiàn)表單登錄頁保存賬號和密碼到cookie功能
這篇文章主要介紹了vue項目實現(xiàn)表單登錄頁保存賬號和密碼到cookie功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
vue3.x中useRouter()執(zhí)行后返回值是undefined問題解決
這篇文章主要給大家介紹了關于vue3.x中useRouter()執(zhí)行后返回值是undefined問題的解決方法,文中通過代碼示例介紹的非常詳細,對大家學習或者使用vue3.x具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09

