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 操作等功能。