Vue 组件有以下 8 个生命周期钩子:
created
:在组件实例被创建后立即调用。beforeMount
:在组件被挂载到 DOM 之前调用。mounted
:在组件被挂载到 DOM 之后调用。beforeUpdate
:在组件更新之前调用。updated
:在组件更新之后调用。beforeDestroy
:在组件被销毁之前调用。destroyed
:在组件被销毁之后调用。activated
:在组件被激活之后调用。
这些生命周期钩子提供了灵活的控制组件的不同阶段的能力,让你可以在适当的时机执行相应的操作,从而实现组件的初始化、数据获取、DOM 操作等功能。
以下是每个生命周期钩子的详细说明:
created
:在组件实例被创建后立即调用。在这个阶段,组件实例已经完成了数据观测、属性和方法的初始化,但尚未挂载到 DOM 中。你可以在created
钩子中进行一些初始化的操作,例如数据的获取、事件的监听等。beforeMount
:在组件被挂载到 DOM 之前调用。在这个阶段,组件的模板已经编译完成,但还没有被挂载到 DOM 中。你可以在beforeMount
钩子中执行一些需要访问 DOM 元素之前的操作,例如初始化第三方库、注册事件监听器等。mounted
:在组件被挂载到 DOM 之后调用。在这个阶段,组件的模板已经编译完成,并且组件实例已经被挂载到了指定的 DOM 元素上。你可以在mounted
钩子中执行一些需要访问 DOM 元素的操作,例如初始化第三方库、注册事件监听器等。beforeUpdate
:在组件更新之前调用。在这个阶段,组件的模板还没有被重新渲染,但数据已经发生了变化。你可以在beforeUpdate
钩子中执行一些需要在更新之前执行的操作,例如数据的校验等。updated
:在组件更新之后调用。在这个阶段,组件的模板已经被重新渲染,并且组件实例的属性也已经更新了。你可以在updated
钩子中执行一些需要在更新之后执行的操作,例如数据的处理等。beforeDestroy
:在组件被销毁之前调用。在这个阶段,组件实例还没有被销毁,但已经从 DOM 中移除了。你可以在beforeDestroy
钩子中执行一些需要在销毁之前执行的操作,例如数据的清理等。destroyed
:在组件被销毁之后调用。在这个阶段,组件实例已经被销毁,并且已经从 DOM 中移除了。你可以在destroyed
钩子中执行一些需要在销毁之后执行的操作,例如取消订阅事件等。activated
:在组件被激活之后调用。在这个阶段,组件实例已经被激活,并且已经从 DOM 中移除了。你可以在activated
钩子中执行一些需要在激活之后执行的操作,例如数据的清理等。
以上就是 Vue 组件的 8 个生命周期钩子,它们提供了灵活的控制组件的不同阶段的能力,让你可以在适当的时机执行相应的操作,从而实现组件的初始化、数据获取、DOM 操作等功能。