在 Vue 3 中,生命周期函数用于在组件的不同阶段执行特定的逻辑。在选项式 API 和组合式 API 中,生命周期函数的定义和使用方式有所不同。下面是它们的对比列表以及每个函数的作用解释。
选项式 API(Options API)
生命周期钩子 | 作用 |
---|---|
beforeCreate | 实例初始化之后,数据观测和事件配置之前调用。通常用于在组件实例化之前进行一些初始化任务。 |
created | 实例创建完成后调用,此时可以访问数据和事件,但组件尚未挂载到 DOM。通常用于初始化数据或发送网络请求。 |
beforeMount | 在挂载开始之前被调用,相关的 render 函数首次被调用。通常用于在初次渲染之前执行一些准备工作。 |
mounted | 挂载完成后调用,此时组件已经被渲染到 DOM。通常用于操作 DOM 或初始化与 DOM 相关的第三方库。 |
beforeUpdate | 数据变化导致的重新渲染之前调用。通常用于在组件更新之前执行一些任务。 |
updated | 由于数据变化导致的虚拟 DOM 重新渲染和打补丁之后调用。通常用于在组件更新后执行一些任务。 |
beforeUnmount | 组件实例卸载之前调用。通常用于在组件被移除之前执行一些清理工作。 |
unmounted | 组件实例卸载之后调用。通常用于清理副作用(如定时器、事件监听等)。 |
组合式 API(Composition API)
在组合式 API 中,使用 Vue 3 提供的钩子函数来处理生命周期事件。这些函数需要在 setup
函数内调用。
生命周期钩子 | 对应组合式 API 的钩子函数 | 作用 |
---|---|---|
beforeCreate | 不需要(setup 已经是 beforeCreate 之后调用) | 组合式 API 中没有对应的钩子函数,因为 setup 函数已经在 beforeCreate 之后调用。 |
created | 不需要(setup 已经是 created 之后调用) | 组合式 API 中没有对应的钩子函数,因为 setup 函数已经在 created 之后调用。 |
beforeMount | onBeforeMount | 在挂载开始之前被调用,相关的 render 函数首次被调用。通常用于在初次渲染之前执行一些准备工作。 |
mounted | onMounted | 挂载完成后调用,此时组件已经被渲染到 DOM。通常用于操作 DOM 或初始化与 DOM 相关的第三方库。 |
beforeUpdate | onBeforeUpdate | 数据变化导致的重新渲染之前调用。通常用于在组件更新之前执行一些任务。 |
updated | onUpdated | 由于数据变化导致的虚拟 DOM 重新渲染和打补丁之后调用。通常用于在组件更新后执行一些任务。 |
beforeUnmount | onBeforeUnmount | 组件实例卸载之前调用。通常用于在组件被移除之前执行一些清理工作。 |
unmounted | onUnmounted | 组件实例卸载之后调用。通常用于清理副作用(如定时器、事件监听等)。 |