vue中的生命周期及鉤子函數(shù)
1.什么是生命周期
Vue 實例有一個完整的生命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載 Dom、渲染 → 更新 → 渲染、卸載等一系列過程,我們稱這是 Vue 的生命周期。通俗說就是 Vue 實例從創(chuàng)建到銷毀的過程,就是生命周期。
在 Vue 的整個生命周期中,它提供了一系列的事件,可以讓我們在事件觸發(fā)時注冊 js 方法,可以讓我們用自己注冊的 js 方法控制整個大局,在這些事件響應(yīng)方法中的 this 直接指向的是 vue 的實例。
2.vue 的生命周期
生命周期函數(shù),又叫鉤子函數(shù)(生命周期鉤子===生命周期函數(shù)===生命周期事件)
vue 中的生命周期函數(shù),一般都是 成對出現(xiàn)。所以我們成對比較一下,他們的區(qū)別。
10 個生命周期函數(shù) 牢記!具體使用!
3.生命周期鉤子函數(shù)
特點:自動調(diào)用的,只是他們的調(diào)用的時間節(jié)點 有 先 有 后。
在官網(wǎng)上拿了張圖:

beforeCreate --- vue實例"創(chuàng)建前" ,注意:在這個函數(shù)中,vue中data數(shù)據(jù)中心的數(shù)據(jù),它是讀不到的。
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
name:"哈哈哈",
num:1111
},
methods: {
},
// vue實例創(chuàng)建之前
beforeCreate(){
console.log('beforeCreate');
console.log(this.name);
}
</script>
輸出數(shù)據(jù)中心的 name 是讀不到的:

created --- vue實例"創(chuàng)建后",注意:在這個函數(shù)中,可以識別 到 vue中data數(shù)據(jù)中心的數(shù)據(jù)
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
name:"哈哈哈",
num:1111
},
// vue實例創(chuàng)建之后
created(){
console.log("created");
console.log(this.name);
}
})
</script>
查看結(jié)果:

beforeMount --- DOM掛載之前 this.$el---此時的$el為“虛擬的”DOM節(jié)點
在視圖層渲染標(biāo)簽:
<div id="app">
<p>{{name}}</p>
<p>{{num}}</p>
</div>
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
name:"哈哈哈",
num:1111
},
// dom掛載之前
beforeMount(){
console.log("beforeMount");
//查看dom元素
console.log(document.body.querySelector("#app").innerHTML);
}
})
</script>
dom掛載前輸出結(jié)果:

mounted ---DOM掛載之后 this.$el---此時的$el為“真實的”DOM節(jié)點
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
name:"哈哈哈",
num:1111
},
// dom掛載之后
mounted(){
console.log("mounted");
console.log(document.body.querySelector("#app").innerHTML);
}
})
</script>
查看輸出結(jié)果:

beforeUpdate--- 數(shù)據(jù)更新之前(----視圖層中的數(shù)據(jù)的前后變化)updated--- 數(shù)據(jù)更新之后(----視圖層中的數(shù)據(jù)的前后變化)
在視圖層通過 點擊讓 num 的數(shù)值發(fā)生改變來模擬數(shù)據(jù)更新,查看結(jié)果:
<div id="app">
<p id="num">{{num}}</p>
<button @click="num++">點擊數(shù)據(jù)更新(num+1)</button>
</div>
// 數(shù)據(jù)更新前
beforeUpdate(){
console.log("beforeUpdate--數(shù)據(jù)更新前");
// 查看dom元素
console.log(document.body.querySelector("#num").innerHTML);
},
// 數(shù)據(jù)更新后
updated(){
console.log("updated--數(shù)據(jù)更新后");
// 查看dom元素
console.log(document.body.querySelector("#num").innerHTML);
}
此時數(shù)據(jù)無變化時,在控制臺是看不到效果的,當(dāng)我們點擊按鈕后:

到此這篇關(guān)于vue中的生命周期及鉤子函數(shù)的文章就介紹到這了,更多相關(guān)vue中的生命周期鉤子函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue 讀取HTMLCollection列表的length為0問題
這篇文章主要介紹了Vue 讀取HTMLCollection列表的length為0問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
vue Treeselect下拉樹只能選擇第N級元素實現(xiàn)代碼
這篇文章主要介紹了vue Treeselect下拉樹只能選擇第N級元素實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue+element?UI?文字加下劃線長度多出一點點的問題
這篇文章主要介紹了vue+element?UI?文字加下劃線長度多出一點點的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

