Vue2和Vue3生命周期区别

2024-02-20  本文已影响0人  SailingBytes

在 Vue 中,生命周期定义了组件从创建到销毁的整个过程。在生命周期的不同阶段,Vue会自动调用一系列的钩子函数,用户可以在这些钩子函数中添加自己的代码,实现特定的功能。

Vue2生命周期

  1. beforeCreate:在实例初始化之后、数据观测和事件配置之前被调用。
  2. created:在实例创建完成后被立即调用。在这一步,实例已完成数据观测、属性和方法的运算,watch/event事件回调已设置,但是挂载阶段尚未开始。
  3. beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。
  4. mounted:在el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。
  5. beforeUpdate:数据更新时调用,发生在虚拟DOM打补丁之前。
  6. updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用这个钩子。
  7. beforeDestroy:在实例销毁之前调用。在这一步,实例仍然完全可用。
  8. destroyed:在实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

Vue3生命周期

  1. setup:这是一个新的生命周期钩子,在组件创建之前执行,用于定义组件的响应式数据和函数。
  2. onBeforeMount:对应Vue2的beforeMount钩子。
  3. onMounted:对应Vue2的mounted钩子。
  4. onBeforeUpdate:对应Vue2的beforeUpdate钩子。
  5. onUpdated:对应Vue2的updated钩子。
  6. onBeforeUnmount:对应Vue2的beforeDestroy钩子。
  7. onUnmounted:对应Vue2的destroyed钩子。
  8. 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 组件错误捕获,用于捕获来自子孙组件的错误
上一篇下一篇

猜你喜欢

热点阅读