本文介绍: Vue2生命周期、Vue3生命周期及其对比,总结: Vue2和Vue3钩子变化不大,beforeCreatecreated 两个钩子setup()钩子来替代。

一、Vue2中的生命周期

Vue2的生命周期分为8个阶段,它们分别是:

  1. beforeCreate创建前):在实例初始化之后,数据观测和事件配置之前被调用。此时实例还未完成初始化无法访问datacomputedwatchmethods属性方法

  2. created创建完成):在实例创建完成后被立即调用。此时,实例已完成了数据观测和属性计算,同时也完成了methodswatch/event事件配置

  3. beforeMount挂载前):在挂载开始之前被调用,此时模板已经编译完成,但尚未渲染成html

  4. mounted挂载完成):在实例挂载页面之后调用。此时真实DOM已经渲染完成,可以进行DOM操作

  5. beforeUpdate更新前):在数据更新之前被调用,该方法用于更新之前访问现有的DOM,例如手动保存滚动位置

  6. updated更新完成):在数据更新之后被调用,该方法还会在组件的子组件更新之后被调用。

  7. beforeDestroy(销毁前):在实例销毁之前调用。此时实例仍然完全可用。

  8. destroyed(销毁完成):在实例销毁之后调用。此时实例所有的指令事件都已经卸除,所有的子实例都已经被销毁。

使用时,可以在Vue组件中直接定义这些生命周期方法,它们自动被调用。需要注意的是,生命周期钩子函数this指向Vue实例。在某些情况下,我们可以利用生命周期函数实现特定的功能例如

总之,生命周期函数我们提供了丰富的钩子来定制Vue组件行为更好理解掌握它们的使用方法开发质量Vue应用的关键。

二、Vue3中的生命周期

1、setup() : 开始创建组件,在 beforeCreat和 create之前执行创建的是 data 和 method

2、onBeforeMount() : 组件挂在到节点上之前执行函数

3、onMounted() : 组件挂载完成后执行函数

4、onBeforeUpdate(): 组件更新之前执行函数

5、onUpdated(): 组件更新完成之后执行的函数;

6、onBeforeUnmount(): 组件卸载之前执行的函数;

7、onUnmounted(): 组件卸载完成后执行的函数;

8、onActivated(): 被包含 <keepalive&gt; 中的组件,会多出两个生命周期钩子函数,被激活执行

9、onDeactivated(): 比如从 A 组件,切换到 B 组件,A 组件消失执行

10、onErrorCaptured(): 当捕获一个来自子孙组件的异常激活钩子函数。

三、Vue2.X和Vue3.X对比

    vue2           -------&gt;          vue3
 
beforeCreate(){}   --------&gt;      setup(()=&gt;{})
created(){}        --------&gt;      setup(()=&gt;{})
beforeMount(){}    -------->      onBeforeMount(()=>{})
mounted(){}        -------->      onMounted(()=>{})
beforeUpdate(){}   -------->      onBeforeUpdate(()=>{})
updated(){}        -------->      onUpdated(()=>{})
beforeDestroy(){}  -------->      onBeforeUnmount(()=>{})
destroyed(){}      -------->      onUnmounted(()=>{})
activated(){}      -------->      onActivated(()=>{})
deactivated(){}    -------->      onDeactivated(()=>{})
errorCaptured(){}  -------->      onErrorCaptured(()=>{})

总结: Vue2和Vue3钩子变化不大,beforeCreate 、created  两个钩子被setup()钩子来替代。

原文地址:https://blog.csdn.net/qq_44848480/article/details/134734931

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_30546.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注