vue2和3各自的生命周期详解

Vue2和Vue3的生命周期有许多相似之处,但也存在着一些差异。具体分析如下:

 

一、Vue2生命周期详解

 

1. beforeCreate:在实例初始化之后,数据观测(data observer) 和事件/监听器(event/watcher) 尚未被设置。

2. created:实例创建完成,此阶段已完成 data、methods、computed 属性等的初始化,但尚未挂载 DOM,$el属性目前不可见。

3. beforeMount:挂载开始之前被调用,此时模板编译已经完成,$el已创建,但尚未挂载到 DOM 中。

4. mounted:实例被挂载到 DOM 上之后调用,可以访问到 DOM 节点,并进行相关操作。

5. beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。

6. updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁之后调用。

7. beforeDestroy:实例销毁之前调用,可以进行善后清理工作。

8. destroyed:实例被销毁后调用,所有的事件监听器都会被移除,子实例也会被销毁。

 

二、Vue3生命周期详解

 

1. onBeforeMount:与 Vue2 的 `beforeMount` 类似,在挂载前调用。

2. onMounted:与 Vue2 的 `mounted` 类似,在元素挂载到 DOM 后立即调用。

3. onBeforeUpdate:与 Vue2 的 `beforeUpdate` 类似,在数据更新前调用。

4. onUpdated:与 Vue2 的 `updated` 类似,在数据更新后立即调用。

5. onBeforeUnmount:与 Vue2 的 `beforeDestroy` 类似,在卸载前调用。

6. onUnmounted:与 Vue2 的 `destroyed` 类似,在卸载后立即调用。

7. onActivated:仅在 keep-alive 组件激活时调用。

8. onDeactivated:仅在 keep-alive 组件停用时调用。

9. onErrorCaptured:当捕获一个来自子孙组件的错误时调用。

10. onRenderTracked:调试钩子,跟踪虚拟节点渲染。

11. onRenderTriggered:调试钩子,当触发组件的渲染时调用。

12. onServerPrefetch:仅在服务器端渲染期间调用,用于获取数据。

 

总的来说,Vue3 的生命周期钩子函数命名有所改变,以 "on" 为前缀,使其更具一致性和可读性。在使用 Vue3 时,需要根据新命名调整代码。虽然部分钩子函数的名称发生了变化,但它们的功能和执行时机基本保持一致。一些新的生命周期钩子函数如 `onRenderTracked`、`onRenderTriggered`、`onActivated` 和 `onDeactivated` 被引入,以适应新的 Composition API 和 keep-alive 组件的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值