beforeDestroy → beforeUnmount(Vue3)destroyed → unmounted(Vue3)renderTracked:跟踪虚拟 DOM 渲染依赖(首次渲染和后续更新时触发)。renderTriggered:追踪重新渲染的触发原因(仅更新时触发)。setup() 替代 beforeCreate 和 created,生命周期钩子通过函数形式引入(如 onMounted)。| Vue2 钩子 | Vue3 钩子(Options API) | Vue3 Composition API 等效函数 | 触发时机 |
|---|---|---|---|
beforeCreate |
beforeCreate |
无(在 setup() 中替代) |
实例初始化后,数据观测/事件配置前。 |
created |
created |
无(在 setup() 中替代) |
实例创建完成,数据观测/方法已配置。 |
beforeMount |
beforeMount |
onBeforeMount |
挂载开始前,首次调用 render 函数。 |
mounted |
mounted |
onMounted |
实例挂载到 DOM 后。 |
beforeUpdate |
beforeUpdate |
onBeforeUpdate |
数据变化后,虚拟 DOM 更新前。 |
updated |
updated |
onUpdated |
数据变化导致虚拟 DOM 重新渲染并打补丁后。 |
beforeDestroy |
beforeUnmount |
onBeforeUnmount |
实例卸载前。 |
destroyed |
unmounted |
onUnmounted |
实例卸载后,所有子实例和事件监听器被移除。 |
| - | - | onRenderTracked |
调试用,跟踪组件渲染依赖(Vue3 新增)。 |
| - | - | onRenderTriggered |
调试用,追踪触发重新渲染的依赖变化(Vue3 新增)。 |
beforeCreate
setup() 替代,代码直接写入 setup。created
setup() 中。beforeMount
mounted
mounted 不保证父组件已挂载。beforeUpdate
updated
beforeUnmount(Vue3) / beforeDestroy(Vue2)
unmounted(Vue3) / destroyed(Vue2)
renderTracked & renderTriggered(Vue3 新增)
onRenderTriggered((e) => {
console.log('重新渲染由以下依赖触发:', e.target);
});
注册方式:
export default {
mounted() {
// 代码
}
}
setup() 中引入钩子函数。import { onMounted } from 'vue';
export default {
setup() {
onMounted(() => {
// 代码
});
}
}
执行顺序:
onMounted)先于 Options API 钩子(如 mounted)执行。unmount 更准确描述组件卸载阶段。renderTracked 和 renderTriggered 便于性能优化。destroyed → unmounted)。beforeDestroy 和 destroyed 为 beforeUnmount 和 unmounted。setup() 中优先使用 Composition API 钩子。mounted 或 updated 中执行耗时操作。onRenderTracked 分析渲染依赖,减少不必要的更新。
热门推荐:
0