前言
组件生命周期是 Vue 应用开发的核心概念之一,它描述了组件从创建到销毁的完整过程。理解生命周期钩子不仅可以帮助我们在正确的时机执行代码逻辑,还能优化应用性能,避免常见错误!掌握这些生命周期知识都将使您能够构建更健壮、高效的 Vue 应用程序.
主要生命周期钩子
1.组件创建
setup() :这是 Vue 3 新增的一个函数,在组件初始化时最先执行,它用于组合式 API 的编写,你可以在其中定义响应式数据、方法。
onBeforeCreate() :在实例初始化之后,数据观测之前被调用,但由于 setup() 的存在,这个钩子基本不用。
onCreated() : 实例创建完成后调用,此时已完成数据观测,但尚未挂载 DOM,在 Vue 3 中,setup() 可以替代这个钩子的大部分功能。
1 | import { onMounted } from 'vue' |
2.组件挂载
onBeforeMount() :在挂载开始之前被调用,此时模板编译已经完成,但 DOM 还未挂载。你可以在这个钩子中做一些最后的准备工作。
onMounted() :在挂载完成后调用,此时组件已经插入到 DOM 中。你可以在这个钩子中进行一些需要访问 DOM 的操作,比如初始化第三方库、绑定事件等。
1 | <template> |
3.组件更新
onBeforeUpdate() :在数据发生变化,DOM 重新渲染之前被调用。你可以在这个钩子中访问更新前的 DOM 状态。
onUpdated() :在数据更新导致的 DOM 重新渲染之后被调用。可以在这个钩子中访问更新后的 DOM 状态,避免修改数据。
1 | <template> |
4.组件卸载
onBeforeUnmount() :在组件卸载之前被调用。你可以在这个钩子中进行一些清理工作,比如取消定时器、解绑事件。
onUnmounted() :在组件卸载完成后被调用。此时组件的所有子实例和事件监听器、子实例也已经被销毁。
1 | import { onBeforeUnmount,onUnmounted } from 'vue' |
5.错误
onErrorCaptured() :当捕获到一个来自子孙组件的错误时被调用。这个钩子可以用于记录错误信息、提供错误反馈。
1 | import { onErrorCaptured } from 'vue' |
新增了生命钩子
Vue3引入了两个新的生命周期钩子用于调试:
renderTracked() - 当响应式依赖被追踪时使用。
renderTriggered() - 当响应式依赖触发组件重新渲染时使用。