2026-10-22 12:42:40
Vue.js 提供了多种钩子函数,允许开发者在组件生命周期的不同阶段插入自定义逻辑。以下是详细的分类和说明:
一、生命周期钩子这些钩子函数在组件生命周期的关键阶段触发,用于执行初始化、DOM 操作或资源清理等任务。
创建阶段
beforeCreate()在实例初始化之后、数据观测和事件配置之前调用。此时 data 和 methods 尚未初始化。
created()实例创建完成后调用,此时已完成数据观测,但尚未挂载 DOM。常用于异步请求数据。
挂载阶段
beforeMount()在挂载开始之前调用,模板已编译但尚未渲染到 DOM。
mounted()实例挂载到 DOM 后调用,适合操作 DOM 或初始化第三方库(如地图、图表)。
更新阶段
beforeUpdate()数据变化导致虚拟 DOM 重新渲染前触发,可用于获取更新前的 DOM 状态。
updated()虚拟 DOM 重新渲染并应用到实际 DOM 后触发,避免在此修改数据以防止无限循环。
销毁阶段
beforeDestroy()实例销毁前调用,适合清除定时器、取消事件监听等清理工作。
destroyed()实例销毁后调用,所有指令和事件监听器被移除。
选项式 API
export default { beforeCreate() { /* ... */ }, mounted() { /* 操作 DOM */ }};组合式 API(Vue 3)通过 setup() 和生命周期函数(需从 vue 导入):
import { onMounted, onUnmounted } from 'vue';export default { setup() { onMounted(() => { console.log('组件已挂载'); }); }};通过合理使用钩子函数,可以精准控制组件行为,提升应用的可维护性和性能。