Vue生命周期實(shí)例分析總結(jié)
1. 概述
每個 Vue 實(shí)例在被創(chuàng)建之前都要經(jīng)過一系列的初始化過程。例如需要設(shè)置數(shù)據(jù)監(jiān)聽、編譯模板、掛載實(shí)例到 DOM、在數(shù)據(jù)變化時更新 DOM 等。同時在這個過程中也會運(yùn)行一些叫做生命周期鉤子的函數(shù),給予用戶機(jī)會在一些特定的場景下添加他們自己的代碼。
簡單來說,生命周期鉤子函數(shù)就是一堆回調(diào)函數(shù),在我們創(chuàng)建實(shí)例時,這些回調(diào)函數(shù)按順序執(zhí)行。
2. 頁面鉤子函數(shù)
| 名稱 | 作用 |
|---|---|
| beforeCreate | 在實(shí)例初始化之后,數(shù)據(jù)觀測和事件配置之前被調(diào)用。此時 data 和 methods 以及頁面的DOM結(jié)構(gòu)都沒有初始化,什么都做不了,執(zhí)行1次 |
| created | 在實(shí)例創(chuàng)建完成后被立即調(diào)用,此時data 和 methods 已經(jīng)可以使用,但是頁面還沒有渲染出來,執(zhí)行1次,用this對象 |
| beforeMount | 在掛載開始之前被調(diào)用,此時頁面上還看不到真實(shí)數(shù)據(jù),只是一個模板頁面而已,執(zhí)行1次 |
| mounted | el被新創(chuàng)建的vm.$el替換,并掛載到實(shí)例上去之后調(diào)用該鉤子。 數(shù)據(jù)已經(jīng)真實(shí)渲染到頁面上 在這個鉤子函數(shù)里面,可以進(jìn)行數(shù)據(jù)請求等,執(zhí)行1次 |
| beforeUpdate | 數(shù)據(jù)更新時調(diào)用,頁面上數(shù)據(jù)還是舊的 n次 |
| updated | 由于數(shù)據(jù)更新完畢,頁面上數(shù)據(jù)已經(jīng)替換成最新的 n次 |
| beforeDestroy | 實(shí)例銷毀之前調(diào)用,執(zhí)行1次 |
| destroyed | 實(shí)例銷毀后調(diào)用,執(zhí)行1次 |
| activated | keep-alive 組件激活時調(diào)用 |
| deactivated | keep-alive 組件停用時調(diào)用 |
| errorCaptured | 當(dāng)捕獲一個來自子孫組件的錯誤時被調(diào)用 |
3. 生命周期函數(shù)

下面我們用代碼實(shí)現(xiàn)以下生命周期函數(shù)的執(zhí)行順序:
<div id="app">
<input type="text" v-model="username">
</div>
<script>
const vm = new Vue({
el: '#app',
data: {
username: ''
},
// 初始化階段生命周期 -- 它只都只執(zhí)行1次
beforeCreate() {
console.log('beforeCreate');
},
created() {
console.log('created');
},
beforeMount() {
console.log('beforeMount');
},
mounted() {
console.log('mounted');
setTimeout(() => {
// 銷毀
this.$destroy()
}, 2000);
this.timer = setInterval(() => {
console.log(111);
}, 1000);
},
// 更新階段生命周期,它們會執(zhí)行N次
beforeUpdate() {
console.log('beforeUpdate');
},
updated() {
console.log('updated');
},
// 銷毀階段 只執(zhí)行1次
beforeDestroy() {
clearInterval(this.timer)
console.log('beforeDestroy');
},
destroyed() {
console.log('destroyed');
}
})
</script>
到此這篇關(guān)于Vue生命周期實(shí)例分析總結(jié)的文章就介紹到這了,更多相關(guān)Vue生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3中實(shí)現(xiàn)使用element-plus調(diào)用message
這篇文章主要介紹了vue3中實(shí)現(xiàn)使用element-plus調(diào)用message,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
原生JS實(shí)現(xiàn)Vue transition fade過渡動畫效果示例
這篇文章主要為大家介紹了原生JS實(shí)現(xiàn)Vue transition fade過渡動畫效果示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
VUE動態(tài)綁定class類的三種常用方式及適用場景詳解
文章介紹了在實(shí)際開發(fā)中動態(tài)綁定class的三種常見情況及其解決方案,包括根據(jù)不同的返回值渲染不同的class樣式、給模塊添加基礎(chǔ)樣式以及根據(jù)設(shè)計確定是否使用多個樣式2025-01-01
基于Vue3實(shí)現(xiàn)百度地圖位置選擇器組件
在開發(fā)前端應(yīng)用時,地圖選擇器是一個非常常見的需求,本文將一步步展示如何使用?Vue?3?和?Element?Plus?來實(shí)現(xiàn)一個百度地圖位置選擇器組件,有需要的可以參考一下2025-04-04

