Vue 实例有不同的生命周期钩子函数,这些函数允许你在 Vue 实例不同阶段执行代码。这些生命周期钩子函数按照执行顺序可分为三个阶段:

第一阶段:实例初始化

  1. beforeCreate
    在实例初始化之后,数据观测 (data observer) 和事件配置 (event watchers) 之前被调用。此时,实例的属性和方法还未初始化。

  2. created
    实例已经完成了数据观测,属性和方法的初始化,但挂载阶段还未开始,DOM 尚未生成。可以在这里进行数据的初始化等操作。

第二阶段:模板编译/挂载前

  1. beforeMount
    在挂载开始之前被调用,相关的 render 函数首次被调用。在此时,模板编译为虚拟 DOM,但尚未挂载到页面上。

第三阶段:模板编译/挂载后

  1. mounted
    实例被挂载后调用,el 被新创建的 vm.$el 替换,并挂载到实例上去后调用该钩子。DOM 已经渲染完成,可以执行操作DOM、进行网络请求等操作。

第四阶段:更新

  1. beforeUpdate
    数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子中进一步地更改数据,不过避免直接修改数据,以免进入无限循环。

  2. updated
    数据更新完成时调用,虚拟 DOM 重新渲染和打补丁后调用。此时组件已经更新完毕,可以执行一些需要使用更新后的 DOM 的操作。

第五阶段:销毁

  1. beforeDestroy
    实例销毁之前调用。在这一步,实例仍然完全可用,可以进行善后处理,比如清除定时器、取消事件监听等。

  2. destroyed
    实例销毁后调用。在这一步,Vue 实例的所有指令已经解绑,所有事件监听器已经移除,所有子实例也已经被销毁。

理解这些生命周期函数可以帮助你更好地管理 Vue 实例的状态和行为。例如,在 created 钩子中可以初始化数据,在 mounted 中可以执行与 DOM 相关的操作,在 beforeDestroy 中进行资源清理等。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.