Vue 的生命周期指的是组件实例从创建到销毁的整个过程中,会触发的一系列钩子函数。这些钩子函数允许开发者在不同的阶段插入自定义代码,以便在组件的不同生命周期阶段执行特定的逻辑。
Vue 2.x 的生命周期包括以下钩子函数:
- beforeCreate:在实例被创建之初,数据观测 (data observer) 和事件/生命周期监听器 (event/watcher) 之前调用。此时,组件的数据、计算属性等都尚未初始化。
- created:实例已经创建完成之后调用。在这个阶段,已经完成了数据观测、属性和方法的运算,但尚未挂载到 DOM 中。
- beforeMount:在组件挂载到 DOM 之前调用。在此阶段,模板编译已完成,但尚未将渲染结果挂载到页面。
- mounted:组件已经挂载到 DOM 后调用。此时,组件已经生成对应的 DOM 结构,可以进行 DOM 操作、访问外部库等操作。
- beforeUpdate:在组件更新之前调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在此阶段进行状态的比较和准备工作。
- updated:组件更新后调用。此时,虚拟 DOM 已经重新渲染并应用到实际的 DOM 上,可以执行依赖于 DOM 的操作。
- beforeUnmount(Vue 2.x 中为 beforeDestroy):在组件销毁之前调用。在这个阶段,组件实例仍然完全可用。
- unmounted(Vue 2.x 中为 destroyed):组件已经销毁后调用。在这个阶段,组件的所有指令和监听器都已经被移除,可以进行清理操作。
这些生命周期钩子函数提供了在组件不同阶段执行代码的机会,例如在创建阶段初始化数据、在挂载阶段进行 DOM 操作、在销毁阶段清理资源等。在 Vue 3.x 中,一些钩子函数的名称已经发生了变化,但整体的生命周期流程和含义保持一致。