Vue鉤子函數(shù)

1、beforeCreate

官方描述:在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)(data observer) 和 event/watcher 事件配置之前被調(diào)用

理解:頁(yè)面還未創(chuàng)建,this、data、method、watch這些中的元素或則方法并未出現(xiàn),不能進(jìn)行調(diào)用

2、created

官方描述:在實(shí)例創(chuàng)建完成后被立即調(diào)用。在這一步,實(shí)例已完成以下的配置:數(shù)據(jù)觀測(cè) (data observer),property 和方法的運(yùn)算,watch/event 事件回調(diào)。然而,掛載階段還沒(méi)開(kāi)始,$el?property 目前尚不可用

理解:可以進(jìn)行this、data、method以及watch的配置,可以調(diào)用元素進(jìn)行數(shù)據(jù)處理,但是頁(yè)面并未渲染完成(數(shù)據(jù)并未填入)

3、beforeMounte

官方描述:在掛載開(kāi)始之前被調(diào)用:相關(guān)的?render?函數(shù)首次被調(diào)用

該鉤子在服務(wù)器端渲染期間不被調(diào)用

理解:頁(yè)面中的虛擬dom創(chuàng)建完成,可以使用createElement創(chuàng)建虛擬的dom元素

4、mounted

官方描述:實(shí)例被掛載后調(diào)用,這時(shí)?el?被新創(chuàng)建的?vm.$el?替換了。如果根實(shí)例掛載到了一個(gè)文檔內(nèi)的元素上,當(dāng)?mounted?被調(diào)用時(shí)?vm.$el?也在文檔內(nèi)。

注意?mounted?不會(huì)保證所有的子組件也都一起被掛載。如果你希望等到整個(gè)視圖都渲染完畢,可以在?mounted?內(nèi)部使用?vm.$nextTick

理解:dom元素掛載完畢,可以對(duì)頁(yè)面上的dom元素進(jìn)行操作,頁(yè)面上出現(xiàn)數(shù)據(jù)

vm.$nextTick:

官方描述:?將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。它跟全局方法?Vue.nextTick?一樣,不同的是回調(diào)的?this?自動(dòng)綁定到調(diào)用它的實(shí)例上

理解:當(dāng)回調(diào)中的賦值失敗時(shí)使用,因?yàn)榕紶柣卣{(diào)的時(shí)候掛載還未完成,導(dǎo)致數(shù)據(jù)無(wú)效

this.$nextTick(function(){

? ? ? ? // DOM 現(xiàn)在更新了 進(jìn)行數(shù)據(jù)操作

})

5、beforeUpdate

官方描述:?數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前。這里適合在更新之前訪問(wèn)現(xiàn)有的 DOM,比如手動(dòng)移除已添加的事件監(jiān)聽(tīng)器。

該鉤子在服務(wù)器端渲染期間不被調(diào)用,因?yàn)橹挥谐醮武秩緯?huì)在服務(wù)端進(jìn)行。

理解:beforeupdate是在更新數(shù)據(jù)之后,還沒(méi)有渲染的時(shí)候執(zhí)行的,這時(shí)候不能操作數(shù)據(jù)和虛擬DOM,否則會(huì)造成死循環(huán)重復(fù)執(zhí)行,因?yàn)槟阒貜?fù)了更新數(shù)據(jù)的過(guò)程

6、updated

官方描述:由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子。

當(dāng)這個(gè)鉤子被調(diào)用時(shí),組件 DOM 已經(jīng)更新,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下,你應(yīng)該避免在此期間更改狀態(tài)。如果要相應(yīng)狀態(tài)改變,通常最好使用計(jì)算屬性或?watcher?取而代之。

注意?updated?不會(huì)保證所有的子組件也都一起被重繪。如果你希望等到整個(gè)視圖都重繪完畢,可以在?updated?里使用?vm.$nextTick

理解:執(zhí)行updated的時(shí)候必須是data中聲明過(guò)的數(shù)據(jù),頁(yè)面的dom更新完畢;不能監(jiān)聽(tīng)到路由數(shù)據(jù)(例如網(wǎng)址中的參數(shù));所有的數(shù)據(jù)發(fā)生變化都會(huì)調(diào)用(消耗性能);每次觸發(fā)的代碼都是同一個(gè)

7、beforeDestroy

官方描述:實(shí)例銷毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。

該鉤子在服務(wù)器端渲染期間不被調(diào)用。

8、destroyed:

官方描述:實(shí)例銷毀后調(diào)用。該鉤子被調(diào)用后,對(duì)應(yīng) Vue 實(shí)例的所有指令都被解綁,所有的事件監(jiān)聽(tīng)器被移除,所有的子實(shí)例也都被銷毀。

該鉤子在服務(wù)器端渲染期間不被調(diào)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容