-
beforeCreate:
- 在组件实例被创建之前调用。
- 此时组件的数据和事件还未初始化。
- 通常情况下,你不太会在这个阶段做太多的工作。
-
created:
- 在组件实例被创建后立即调用。
- 组件实例已经初始化,但模板、DOM 元素等还未创建。
- 适合进行一些数据初始化、异步请求、订阅事件等操作。
-
beforeMount:
- 在模板编译/渲染之前调用。
- 此时组件的模板已经编译完成,但尚未挂载到 DOM。
- 在这个阶段,你可以访问组件的虚拟 DOM。
-
mounted:
- 在组件挂载到 DOM 后立即调用。
- 此时组件已经渲染到页面,并且可以访问 DOM 元素。
- 常用于执行 DOM 操作、发起网络请求、订阅事件等。
-
beforeUpdate:
- 在数据更新之前、重新渲染之前调用。
- 此时数据已经改变,但尚未更新到视图。
- 可以用来在更新前执行一些逻辑操作。
-
updated:
- 在数据更新并重新渲染后调用。
- 组件的模板已经更新,可以访问新的 DOM。
- 常用于执行需要基于新数据进行的操作,但需要注意避免无限循环更新。
-
beforeDestroy:
- 在组件销毁之前调用。
- 此时组件实例仍然完全可用。
- 常用于清理定时器、取消订阅、解绑事件等操作。
-
destroyed:
- 在组件销毁后调用。
- 此时组件实例已经无法访问,被完全销毁。
- 可以用于做一些最后的清理工作。
此外,还有一个特殊的生命周期钩子函数:
- activated 和 deactivated:
- 用于 Vue Router 中的
<keep-alive>
组件。 - 当组件被
<keep-alive>
缓存时,会调用activated
,组件被激活时调用。 - 当组件离开缓存时,会调用
deactivated
,组件被停用时调用。
- 用于 Vue Router 中的
总的来说,Vue 组件生命周期函数可以让你控制组件在不同生命周期阶段的行为,适当地使用这些生命周期函数可以帮助你管理数据、处理异步操作、优化性能等。根据你的需求,选择合适的生命周期钩子来编写代码。