Vue 实例从创建到销毁的整个过程中,包含了一系列的生命周期钩子函数,这些钩子函数允许你在不同阶段执行代码,以便控制和定制 Vue 实例的行为。Vue 的生命周期可以分为四个阶段:
1. 创建阶段(Creation)
- beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。此时实例的 data 和 methods 还未初始化。
- created:实例已经完成数据观测 (data observer),属性和方法的运算,初始化完成。可以在这个阶段进行数据请求和初始渲染。
2. 挂载阶段(Mounting)
- beforeMount:在挂载开始之前被调用,相关的 render 函数首次被调用。
- mounted:在实例挂载到 DOM 后调用,这时
vm.$el
被新创建的 vm 替换,挂载完成。通常进行 DOM 操作和异步请求等操作。
3. 更新阶段(Updating)
- beforeUpdate:在数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。
- updated:在数据更新导致的虚拟 DOM 重新渲染和打补丁之后调用。通常用于 DOM 的重新渲染和更新操作。
4. 销毁阶段(Destroying)
- beforeDestroy:在实例销毁之前调用。实例仍然完全可用,可以执行清理操作,比如清除定时器、取消订阅等。
- destroyed:在实例销毁后调用,此时所有的事件监听器和子实例都已被移除。组件的所有指令和观察者也都被解绑。
这些生命周期钩子提供了一种机制,让你可以在不同阶段执行自定义逻辑,例如在组件创建前后执行一些初始化操作,在数据更新后做一些处理,或者在组件销毁前清理资源。对于理解 Vue 组件生命周期及合理利用生命周期钩子,可以更好地控制组件行为,实现更好的交互和效果。
Was this helpful?
0 / 0