Vue2.0和Vue3.0的生命周期有什么区别?

Vue2.0和Vue3.0的生命周期存在显著的区别,主要体现在生命周期钩子的数量、命名以及使用方式上。以下是对两者区别的详细归纳:

一、Vue2.0的生命周期

Vue2.0的生命周期包括八个主要的钩子函数,分别是:

  1. beforeCreate:在实例初始化之后,数据观测和事件配置之前被调用。
  2. created:在实例创建完成后被调用,此时已完成数据观测、属性和方法的运算以及事件回调的配置,但尚未开始挂载阶段。
  3. beforeMount:在挂载开始之前被调用,此时相关的render函数首次被调用。
  4. mounted:实例被挂载到DOM上之后调用此钩子。
  5. beforeUpdate:数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。
  6. updated:由于数据更改导致的虚拟DOM重新渲染和打补丁完成后调用此钩子。
  7. beforeDestroy:实例销毁之前调用,此时实例仍然完全可用。
  8. destroyed:Vue实例销毁后调用,此时所有的数据绑定、事件监听等都被移除。

此外,当使用<keep-alive>包裹组件时,还会增加两个与缓存相关的生命周期钩子:activated和deactivated。

二、Vue3.0的生命周期

Vue3.0对生命周期钩子进行了重构,引入了新的命名约定和组合式API的支持。Vue3.0的生命周期包括以下几个主要的钩子函数(使用组合式API的命名方式):

  1. setup:开始创建组件之前执行,是组合式API的入口点,此时尚未创建组件实例,因此无法访问this。
  2. onBeforeMount:组件挂载到节点上之前执行的函数。
  3. onMounted:组件挂载完成后执行的函数。
  4. onBeforeUpdate:组件更新之前执行的函数。
  5. onUpdated:组件更新完成之后执行的函数。
  6. onBeforeUnmount:组件卸载之前执行的函数,替代了Vue2.0中的beforeDestroy。
  7. onUnmounted:组件卸载之后执行的函数,替代了Vue2.0中的destroyed。

值得注意的是,Vue3.0废弃了activated和deactivated这两个与<keep-alive>相关的生命周期钩子,取而代之的是新的组合式API中的相关逻辑处理。

三、总结

Vue2.0和Vue3.0在生命周期方面的主要区别在于钩子的数量、命名以及使用方式。Vue3.0通过引入组合式API和新的命名约定,使得生命周期钩子的使用更加灵活和直观。同时,Vue3.0也废弃了一些在Vue2.0中不再必要或已被替代的钩子函数。这些变化反映了Vue框架在不断发展和优化过程中的进步和革新。

posted @   王铁柱6  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示