vue 3生命周期與vue 2生命周期有何不同?vue 3 引入了新的生命周期鉤子,包括 setup(),并修改了現(xiàn)有鉤子。它還增加了 onbeforemount 和 onbeforeunmount,提供了更多的靈活性。生命周期順序與 vue 2 基本相同,但 setup() 鉤子的引入導(dǎo)致了順序的變化:setup() -> beforecreate -> created -> onbeforemount -> onmounted -> onbeforeupdate
Vue 2 與 Vue 3 生命周期:比較
生命周期鉤子
Vue 2 和 Vue 3 共享以下生命周期鉤子:
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed
新增和修改
Vue 3 引入了一些新的生命周期鉤子和對現(xiàn)有鉤子的修改:
setup(): 替換了 beforeCreate 和 created 鉤子,用于設(shè)置組件狀態(tài)和方法。
onBeforeMount: 在組件第一次渲染到 DOM 之前調(diào)用,替換了 Vue 2 中的 mounted 鉤子。
onMounted: 仍然在組件首次渲染到 DOM 之后調(diào)用,但現(xiàn)在在 onBeforeMount 之后。
onBeforeUnmount: 在組件銷毀之前調(diào)用,替換了 Vue 2 中的 beforeDestroy 鉤子。
onUnmounted: 仍然在組件銷毀之后調(diào)用,但現(xiàn)在在 onBeforeUnmount 之后。
onActivated: 當(dāng)父組件激活時調(diào)用。
onDeactivated: 當(dāng)父組件停用時調(diào)用。
順序
Vue 3的生命周期順序與 Vue 2 基本相同,但由于 setup() 的引入,現(xiàn)在如下所示:
-
setup()
beforeCreate
created
onBeforeMount
onMounted
onBeforeUpdate
updated
onBeforeUnmount
onUnmounted
destroyed
優(yōu)點(diǎn)
更好的代碼組織: setup() 鉤子使代碼組織更加清晰,因為它負(fù)責(zé)設(shè)置組件狀態(tài)和方法。
增強(qiáng)靈活性: onBeforeMount 和 onBeforeUnmount 鉤子提供更多的靈活性,允許組件在渲染到 DOM 之前或銷毀之前執(zhí)行操作。
錯誤處理改進(jìn): onMounted 鉤子已添加到更早檢測和處理渲染錯誤,而無需使用特殊的錯誤處理組件。