Vue2.0与Vue3.0中生命周期函数对比

前言

做前端(尤其是Vue技术栈)的同学应该都知道,vue3.0已经来很长一段时间了,虽然现在市面上用vue3的人还不多,但是随着技术的不断发展,相信vue3取代vue2也是迟早的事。所以不管现在是否用得到,3.0的一些知识还是有必要学起来的。
下面就从最基本的生命周期(钩子)函数开始对vue2.0和vue3.0进行一个简单的梳理和对比

Vue2.0生命周期函数

我们知道在2.0版本中主要有8个比较的生命周期函数,另外还有2个跟keep-alive组件相关的,下面我们就分别对每个函数做一下简单的介绍

  • beforeCreate:组件实例被创建前调用,此时data属性等尚未初始化,所以这里不能访问组件的实例及打他属性等。一般可以用于操作一些异步准备工作等。
  • created:此时组件实例已经创建完成,属性等也已经绑定,这里可以使用实例或data属性了。但DOM尚未生成
  • beforeMount:在组件被挂载之前调用,此时依然没有生成DOM元素,不能进行dom操作
  • mounted: 在组件被挂载后调用,此时已经生成DOM元素,可以进行dom操作
  • beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在这个钩子中进一步地更改状态,这时不会触发附加的重渲染过程。
  • updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新
  • activated:与keep-alive相关的函数,keep-alive组件被激活时调用
  • deactivated:与keep-alive相关的函数,keep-alive组件被移除时调用
  • beforeDestroy:组件被销毁前调用,在这一步,实例仍然完全可用。
  • destroyed:组件销毁后调用,调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

Vue3.0 生命周期(钩子)函数

vue3.0的改动相对来说还是有点大的,其中就包括钩子函数,下面就一起看下3.0中的函数都做了哪些改动

  • setup:因为3.0中主打的是组合式API,所有的操作基本上都是基于函数式编程的,这里最大的变化就是新增了setup函数代替了2.0中的beforeCreate和created函数,并且一般情况下其它的钩子函数或者说大部分的代码也都是写在这个函数里的,可以理解为组件的入口函数,还需要注意的是3.0中没有了this,所以在所有的钩子函数中的this均不在指向组件实例
  • onBeforeMount:对应的2.0中的beforeMount,只是名字发生了变化
  • onMounted:同样对应2.0中的mounted
  • onBeforeUpdated:对应2.0中的beforeUpdated
  • onUpdated:对应2.0中的updated
  • onBeforeUnmount:对应2.0中的beforeDestroy
  • onUnmounted:对应2.0中的Destroyed
    不难发现3.0中钩子函数最大的变化就是setup代替了2.0中的beforeCreate和created,而对应其它几个函数来说都是名称上发生了一些变化,其功能基本上还是一样的。

总结

本文中我们对vue2.0和vue3.0中的生命周期(钩子)函数做了简单的梳理和对比。在后面的文章中我们还将继续对2.0和3.0中其它方面的知识进行一个梳理和对比,如果大家喜欢,欢迎点赞留言加关注。
如果有整理的不准确的也欢迎指正。

猜你喜欢

转载自blog.csdn.net/lixiaosenlin/article/details/120514866