淺析Vue中生命周期函數(shù)的區(qū)別
生命周期圖

上圖生命周期每個(gè)紅色的鉤子是一個(gè)階段,可以在每個(gè)不同的階段寫(xiě)合適的代碼。
生命周期函數(shù)
生命周期分為四個(gè)對(duì)子,根據(jù)不同的情況使用不同的函數(shù)
其中beforeUpdate、updated能執(zhí)行多次
| beforeCreate、created | 創(chuàng)建前、創(chuàng)建后 |
| beforeMount、mounted | 掛載前、掛載后 |
| beforeUpdate、updated | 更新前、更新后 |
| beforeDestroy、destroyed | 銷(xiāo)毀前、銷(xiāo)毀后 |
下面的四種應(yīng)用場(chǎng)景用的統(tǒng)一HTML代碼
<div id="app">
{{myName}}
</div>beforeCreate和created的區(qū)別
創(chuàng)建前、創(chuàng)建后
beforeCreate創(chuàng)建前應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
beforeCreate(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("created",this.myName,bodyDom);
}
});瀏覽器輸出結(jié)果:
beforeCreate中data的數(shù)據(jù)是沒(méi)有被定義的,created后面是undefined并且{{myName}}還未被識(shí)別

created創(chuàng)建后應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
created(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("created",this.myName,bodyDom);
}
});瀏覽器輸出結(jié)果:
created主要做一些頁(yè)面的數(shù)據(jù)的數(shù)據(jù)初始化工作,獲取到了myName的值,但是后臺(tái)顯示的還是{{myName}}值還未被填上去

beforeMount和mounted的區(qū)別
掛載前、掛載后
beforeMount掛載前應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
beforeMount(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("beforeMount",this.myName,bodyDom);
},
}
});瀏覽器輸出結(jié)果:
輸出結(jié)果和created創(chuàng)建后一樣,是在創(chuàng)建后掛載前,自我感覺(jué)沒(méi)啥大用

mounted掛載后應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
mounted(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("beforeMount",this.myName,bodyDom);
},
}
});瀏覽器輸出結(jié)果:
數(shù)據(jù)已經(jīng)渲染到View中

beforeUpdate和updated的區(qū)別
更新前、更新后;和其他三個(gè)不同可被重復(fù)執(zhí)行
beforeUpdate更新前應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
beforeUpdate(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("beforeMount",this.myName,bodyDom);
},
}
});瀏覽器輸出結(jié)果:
數(shù)據(jù)更新前,數(shù)據(jù)未改變

updated更新后應(yīng)用場(chǎng)景
vue代碼:
var app = new Vue({
el: '#app',
data() {
return {
myName:'abc',
}
},
updated(){
//獲取body并輸出測(cè)試
var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
console.log("beforeMount",this.myName,bodyDom);
},
}
});瀏覽器輸出結(jié)果:
數(shù)據(jù)更新后,數(shù)據(jù)已改變

beforeDestroy和destroyed的區(qū)別
銷(xiāo)毀前、銷(xiāo)毀后
beforeDestroy銷(xiāo)毀前
一般應(yīng)用到的場(chǎng)景:
- 清除定時(shí)器
- 解綁自定義事件
- 取消訂閱、事件監(jiān)聽(tīng)
沒(méi)有具體代碼演示
destroyed銷(xiāo)毀后
此鉤子函數(shù)會(huì)在組件實(shí)例銷(xiāo)毀之后執(zhí)行,此時(shí)所有的組件包括子組件都被銷(xiāo)毀了。
也沒(méi)有具體代碼演示
總結(jié)
幾個(gè)生命周期函數(shù)各有各的特點(diǎn),根據(jù)不同的業(yè)務(wù),使用不同的生命周期函數(shù)來(lái)解決問(wèn)題。
到此這篇關(guān)于淺析Vue中生命周期函數(shù)的區(qū)別的文章就介紹到這了,更多相關(guān)Vue生命周期函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解Pinia和Vuex與兩個(gè)Vue狀態(tài)管理模式
這篇文章主要介紹了一文詳解Pinia和Vuex與兩個(gè)Vue狀態(tài)管理模式,Pinia和Vuex一樣都是是vue的全局狀態(tài)管理器。其實(shí)Pinia就是Vuex5,只不過(guò)為了尊重原作者的貢獻(xiàn)就沿用了這個(gè)看起來(lái)很甜的名字Pinia2022-08-08
vue3.0 CLI - 2.2 - 組件 home.vue 的初步改造
這篇文章主要介紹了vue3.0 CLI - 2.2 - 組件 home.vue 的初步改造,home.vue 組件有了兩個(gè)屬性:navs 和 tts 屬性,具體實(shí)例代碼大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧2018-09-09
vue-router3.0版本中 router.push 不能刷新頁(yè)面的問(wèn)題
這篇文章主要介紹了vue-router3.0版本中 router.push 不能刷新頁(yè)面的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Vue選項(xiàng)之propsData傳遞數(shù)據(jù)方式
這篇文章主要介紹了Vue選項(xiàng)之propsData傳遞數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue數(shù)據(jù)操作之點(diǎn)擊事件實(shí)現(xiàn)num加減功能示例
這篇文章主要介紹了vue數(shù)據(jù)操作之點(diǎn)擊事件實(shí)現(xiàn)num加減功能,結(jié)合實(shí)例形式分析了vue.js事件響應(yīng)及數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
vue 使某個(gè)組件不被 keep-alive 緩存的方法
今天小編就為大家分享一篇vue 使某個(gè)組件不被 keep-alive 緩存的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue項(xiàng)目如何關(guān)閉語(yǔ)法檢查
這篇文章主要介紹了Vue項(xiàng)目如何關(guān)閉語(yǔ)法檢查問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04

