鄭州企業(yè)網(wǎng)站價(jià)格百度廣告搜索推廣
Vue.js 的生命周期分為幾個(gè)不同的階段,每個(gè)階段都對(duì)應(yīng)著組件的創(chuàng)建、掛載、更新和銷(xiāo)毀。以下是對(duì) Vue 實(shí)例每個(gè)生命周期周期的具體場(chǎng)景描述:
-
創(chuàng)建前/后(beforeCreate / created)
- beforeCreate:在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)和事件配置之前被調(diào)用。在這個(gè)階段,實(shí)例還沒(méi)有?
$data
?和?$el
,因此無(wú)法訪(fǎng)問(wèn)或操作 DOM。- 場(chǎng)景:在這個(gè)階段,通常用于進(jìn)行一些初始化的工作,比如設(shè)置加載動(dòng)畫(huà)。
- created:在實(shí)例創(chuàng)建完成后被立即調(diào)用。在這一步,實(shí)例已完成數(shù)據(jù)觀測(cè)、屬性和方法的運(yùn)算、watch/event事件回調(diào)。這時(shí),還沒(méi)有開(kāi)始 DOM 編譯,$el 屬性目前不可見(jiàn)。
- 場(chǎng)景:可以在這里進(jìn)行數(shù)據(jù)的初始化和相關(guān)的異步操作,如從 API 獲取數(shù)據(jù)。
- beforeCreate:在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)和事件配置之前被調(diào)用。在這個(gè)階段,實(shí)例還沒(méi)有?
-
載入前/后(beforeMount / mounted)
- beforeMount:在掛載開(kāi)始之前被調(diào)用:相關(guān)的?
render
?函數(shù)首次被調(diào)用。該鉤子在服務(wù)器端渲染期間不被調(diào)用。- 場(chǎng)景:在這個(gè)階段,模板已經(jīng)編譯完成,但尚未掛載到 DOM 上。如果需要操作原始 DOM,此時(shí)還不可以,但可以檢查模板的渲染輸出。
- mounted:在?
el
?被新創(chuàng)建的?vm.$el
?替換,并掛載到實(shí)例上去之后調(diào)用該鉤子。如果?root
?實(shí)例掛載了一個(gè)文檔內(nèi)元素,當(dāng)?mounted
?被調(diào)用時(shí),子組件也已經(jīng)被掛載。- 場(chǎng)景:這是操作 DOM 的最佳時(shí)機(jī),因?yàn)榇藭r(shí)已經(jīng)可以訪(fǎng)問(wèn)到掛載的 DOM 元素了。
- beforeMount:在掛載開(kāi)始之前被調(diào)用:相關(guān)的?
-
更新前/后(beforeUpdate / updated)
- beforeUpdate:數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前。這里適合在更新之前訪(fǎng)問(wèn)現(xiàn)有的 DOM,比如手動(dòng)移除已添加的事件監(jiān)聽(tīng)器。
- 場(chǎng)景:如果需要做一些清理工作,比如取消綁定的事件監(jiān)聽(tīng)器,可以在?
beforeUpdate
?鉤子中進(jìn)行。
- 場(chǎng)景:如果需要做一些清理工作,比如取消綁定的事件監(jiān)聽(tīng)器,可以在?
- updated:由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用此鉤子。當(dāng)這個(gè)鉤子被調(diào)用時(shí),組件 DOM 已經(jīng)更新,所以可以執(zhí)行依賴(lài)于 DOM 的操作。
- 場(chǎng)景:適合進(jìn)行 DOM 相關(guān)的操作,例如獲取某個(gè)元素的尺寸或位置。
- beforeUpdate:數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前。這里適合在更新之前訪(fǎng)問(wèn)現(xiàn)有的 DOM,比如手動(dòng)移除已添加的事件監(jiān)聽(tīng)器。
-
銷(xiāo)毀前/后(beforeDestroy / destroyed)
- beforeDestroy:實(shí)例銷(xiāo)毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。
- 場(chǎng)景:可以在這個(gè)階段進(jìn)行一些清理工作,比如移除監(jiān)聽(tīng)器、取消訂閱事件等。
- destroyed:Vue 實(shí)例銷(xiāo)毀后調(diào)用。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定,所有的事件監(jiān)聽(tīng)器會(huì)被移除,所有的子實(shí)例也會(huì)被銷(xiāo)毀。
- 場(chǎng)景:這是清理工作的最后時(shí)機(jī),確保所有的資源都被釋放。
- beforeDestroy:實(shí)例銷(xiāo)毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。