Vue生命周期

Vue的生命周期是指Vue实例从创建到销毁的一系列过程,在这个过程中,Vue会提供一系列的生命周期钩子(也称为生命周期函数),允许开发者在特定的阶段添加自己的代码,以实现特定的功能。Vue的生命周期主要包括以下八个阶段:
img

1. 创建前(beforeCreate)

  • 阶段描述:在这个阶段,Vue实例已经初始化,但数据观察(data observer)和事件/侦听器的配置都还未开始,因此无法访问到data、computed、watch、methods上的方法和数据。
  • 使用场景:由于此时无法访问到任何数据和方法,因此这个阶段通常不用于实际的业务逻辑处理,但在某些特殊情况下,可能会用于初始化一些全局的、不依赖于Vue实例的变量或配置。

2. 创建后(created)

  • 阶段描述:在这个阶段,实例已经被创建,数据观察、属性和方法的运算,watch/event事件回调已经配置完成,但是挂载阶段还没开始,$el属性目前不可见。此时可以访问到data、computed等属性,但无法访问到DOM元素。
  • 使用场景:这个阶段是进行数据请求、计算属性或方法的初始化的好时机,因为此时数据和方法都已经准备好了。

3. 载入前(beforeMount)

  • 阶段描述:在这个阶段,模板编译/挂载之前被调用,相关的render函数首次被调用(此时尚未渲染到DOM上)。此时,$el和data都已初始化,但尚未挂载到DOM树中,因此无法访问到DOM元素。
  • 使用场景:这个阶段可以用于在渲染之前对数据和模板进行最后的处理或修改。

4. 载入后(mounted)

  • 阶段描述:在这个阶段,el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。此时,Vue实例已经挂载到DOM上,可以访问到DOM元素。
  • 使用场景:这个阶段是执行依赖于DOM的初始化操作的理想时机,如设置定时器、监听DOM事件等。

5. 更新前(beforeUpdate)

  • 阶段描述:当组件的数据变化时,会触发视图的重新渲染。在重新渲染之前,会调用这个钩子。此时,新的数据已经准备好,但视图尚未更新。
  • 使用场景:这个阶段可以用于在数据更新之前执行一些操作,如访问当前的数据状态。

6. 更新后(updated)

  • 阶段描述:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用这个钩子。此时,组件的DOM已经更新,可以访问到最新的DOM元素。
  • 使用场景:这个阶段可以用于在数据更新后执行依赖于DOM的操作,如重新计算DOM的某些属性或尺寸。

7. 销毁前(beforeDestroy)

  • 阶段描述:在Vue实例销毁之前调用。在这个阶段,实例仍然完全可用。
  • 使用场景:这个阶段可以用于执行一些清理工作,如清除定时器、解绑事件监听器等,以避免内存泄漏。

8. 销毁后(destroyed)

  • 阶段描述:在Vue实例销毁之后调用。此时,Vue实例的所有指令都已解绑,所有的事件监听器被移除,所有的子实例也都被销毁。
  • 使用场景:这个阶段通常不需要进行任何操作,因为Vue实例已经完全销毁,无法再访问其数据和方法。

Vue的生命周期为开发者提供了在不同阶段执行代码的机会,使得开发者可以更加灵活地控制组件的行为和性能。通过合理利用这些生命周期钩子,可以写出更加高效、易于维护的Vue代码。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vⅤ_Leon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值