vue3的生命周期(vue2對比)


一、vue3 生命周期函數

setup() :開始創建組件之前,在beforeCreate和created之前執行。創建的是data和method
onBeforeMount() : 組件掛載到節點上之前執行的函數。
onMounted() : 組件掛載完成后執行的函數。
onBeforeUpdate(): 組件更新之前執行的函數。
onUpdated(): 組件更新完成之后執行的函數。
onBeforeUnmount(): 組件卸載之前執行的函數。
onUnmounted(): 組件卸載完成后執行的函數
onActivated(): 被包含在中的組件,會多出兩個生命周期鈎子函數。被激活時執行。
onDeactivated(): 比如從 A 組件,切換到 B 組件,A 組件消失時執行。
onErrorCaptured(): 當捕獲一個來自子孫組件的異常時激活鈎子函數。

二、vue2.x 生命周期

beforeCreate():實例在內存中被創建出來,還沒有初始化好data和methods屬性。

create():實例已經在內存中創建,已經初始化好data和method,此時還沒有開始編譯模板。

beforeMount():已經完成了模板的編譯,還沒有掛載到頁面中。

mounted():將編譯好的模板掛載到頁面指定的容器中顯示。

beforeUpdate():狀態更新之前執行函數,此時data中的狀態值是最新的,但是界面上顯示的數據還是舊的,因為還沒有開始重新渲染DOM節點。

updated():此時data中的狀態值和界面上顯示的數據都已經完成了跟新,界面已經被重新渲染好了!

beforeDestroy():實例被銷毀之前。

destroyed():實例銷毀后調用,Vue實例指示的所有東西都會解綁,所有的事件監聽器都會被移除,所有的子實例也都會被銷毀。組件已經被完全銷毀,此時組建中所有data、methods、以及過濾器,指令等,都已經不可用了。

在實際開發項目中這些鈎子函數如何使用呢?

 beforecreate : 可以在這函數中初始化加載動畫
 created :做一些數據初始化,實現函數自執行
 mounted: 調用后台接口進行網絡請求,拿回數據,配合路由鈎子做一些事情
 destoryed :當前組件已被刪除,清空相關內容
 mounted中做網絡請求和重新賦值,在destoryed中清空頁面數據。

還有個比較特殊的鈎子函數nextTick(),數據更新后的dom操作,寫在該函數里面

三、與vue2的對比

Vue2--------------vue3
beforeCreate  -> setup()
created       -> setup()
beforeMount   -> onBeforeMount
mounted       -> onMounted
beforeUpdate  -> onBeforeUpdate
updated       -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed     -> onUnmounted
activated     -> onActivated
deactivated   -> onDeactivated
errorCaptured -> onErrorCaptured


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM