這篇文章將為大家詳細(xì)講解有關(guān)vue生命周期有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)主營(yíng)新會(huì)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),新會(huì)h5小程序開(kāi)發(fā)搭建,新會(huì)網(wǎng)站營(yíng)銷推廣歡迎新會(huì)等地區(qū)企業(yè)咨詢
周期呢?
根實(shí)例的加載相關(guān)的生命周期(beforeCreate、created、beforeMount、mounted)
組件實(shí)例的加載相關(guān)的生命周期(beforeCreate、created、beforeMount、mounted)
全局路由勾子(router.beforeEach)
組件路由勾子(beforeRouteEnter)
組件路由勾子的next里的回調(diào)(beforeRouteEnter)
指令的周期(bind,inserted)
nextTick方法的回調(diào)
接下來(lái),讓我們用vue-cli簡(jiǎn)單改造后的項(xiàng)目,做一個(gè)測(cè)試,看看各個(gè)聲明周期的觸發(fā)順序是怎樣的
main.js:
router.beforeEach((to, from, next) => { console.log('路由全局勾子:beforeEach') next() }) router.afterEach((to, from) => { console.log('路由全局勾子:afterEach') }) new Vue({ beforeCreate () { console.log('根組件:beforeCreate') }, created () { console.log('根組件:created') }, beforeMount () { console.log('根組件:beforeMount') }, mounted () { console.log('根組件:mounted') } el: '#app', router, template: '', components: { App } })
test.vue
test
接下來(lái),直接進(jìn)入test.vue對(duì)應(yīng)的路由。在控制臺(tái),我們看到如下的輸出
我們看到執(zhí)行的順序?yàn)?/p>
路由勾子 (beforeEach、beforeRouteEnter、afterEach)
根組件 (beforeCreate、created、beforeMount)
組件 (beforeCreate、created、beforeMount)
指令 (bind、inserted)
組件 mounted
根組件 mounted
beforeRouteEnter的next的回調(diào)
nextTick
結(jié)論
路由勾子執(zhí)行周期非常早,甚至在根實(shí)例的渲染之前
具體的順序 router.beforeEach > beforeRouteEnter > router.afterEach
tip:在進(jìn)行路由攔截的時(shí)候要避免使用實(shí)例內(nèi)部的方法或?qū)傩浴?br/>在開(kāi)發(fā)項(xiàng)目時(shí)候,我們腦門(mén)一拍把,具體攔截的程序,寫(xiě)在了根實(shí)例的方法上了,到beforeEach去調(diào)用。
結(jié)果導(dǎo)致整個(gè)攔截的周期,推遲到實(shí)例渲染的之后。
因此對(duì)于一些路由組件的beforeRouteEnter里的請(qǐng)求并無(wú)法攔截,頁(yè)面看上去好像已經(jīng)攔截下來(lái)了。
實(shí)際上請(qǐng)求依然發(fā)了出去,beforeRouteEnter內(nèi)的函數(shù)依然執(zhí)行了。
指令的綁定在組件mounted之前,組件的beforeMount之后
不得不提的, beforeRouteEnter的next勾子
beforeRouteEnter的執(zhí)行順序是如此靠前,而其中next的回調(diào)勾子的函數(shù),執(zhí)行則非??亢?,在mounted之后??!
我們通常是在beforeRouteEnter中加載一些首屏用數(shù)據(jù),待數(shù)據(jù)收到后,再調(diào)用next勾子,通過(guò)回調(diào)的參數(shù)vm將數(shù)據(jù)綁定到實(shí)例上。
因此,請(qǐng)注意next的勾子是非常靠后的。
nextTick
越早注冊(cè)的nextTick觸發(fā)越早
關(guān)于vue生命周期有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。