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