Vue2和Vue3生命周期区别
2024-02-20 本文已影响0人
SailingBytes
在 Vue 中,生命周期定义了组件从创建到销毁的整个过程。在生命周期的不同阶段,Vue会自动调用一系列的钩子函数,用户可以在这些钩子函数中添加自己的代码,实现特定的功能。
Vue2生命周期
- beforeCreate:在实例初始化之后、数据观测和事件配置之前被调用。
- created:在实例创建完成后被立即调用。在这一步,实例已完成数据观测、属性和方法的运算,watch/event事件回调已设置,但是挂载阶段尚未开始。
- beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。
- mounted:在el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。
- beforeUpdate:数据更新时调用,发生在虚拟DOM打补丁之前。
- updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用这个钩子。
- beforeDestroy:在实例销毁之前调用。在这一步,实例仍然完全可用。
- destroyed:在实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
Vue3生命周期
- setup:这是一个新的生命周期钩子,在组件创建之前执行,用于定义组件的响应式数据和函数。
- onBeforeMount:对应Vue2的beforeMount钩子。
- onMounted:对应Vue2的mounted钩子。
- onBeforeUpdate:对应Vue2的beforeUpdate钩子。
- onUpdated:对应Vue2的updated钩子。
- onBeforeUnmount:对应Vue2的beforeDestroy钩子。
- onUnmounted:对应Vue2的destroyed钩子。
- onErrorCaptured:这是一个新的生命周期钩子,用于捕获来自子孙组件的错误。
生命周期对比(Vue2 vs Vue3)
Vue2生命周期 | Vue3生命周期 | 说明 |
---|---|---|
beforeCreate | setup | 组件创建之前执行,用于定义组件的响应式数据和函数 |
created | setup | 组件创建完成后执行,用于定义组件的响应式数据和函数 |
beforeMount | onBeforeMount | 组件挂载之前执行,相关的render函数首次被调用 |
mounted | onMounted | 组件挂载完成后执行,el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子 |
beforeUpdate | onBeforeUpdate | 组件数据更新时执行,发生在虚拟DOM打补丁之前 |
updated | onUpdated | 组件数据更新后执行,由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用该钩子 |
beforeDestroy | onBeforeUnmount | 组件销毁之前执行,实例仍然完全可用 |
destroyed | onUnmounted | 组件销毁后执行,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁 |
- | onErrorCaptured | 组件错误捕获,用于捕获来自子孙组件的错误 |