Vue3生命周期函数

在 Vue 3 中,生命周期钩子函数是指组件从创建到销毁的整个过程中,Vue 自动调用的一些特定函数。它们让你能够在组件的不同阶段执行一些自定义操作。Vue 3 提供了组合式 API 和选项式 API 两种方式来定义生命周期钩子。

1. onBeforeMount (组合式 API)

  • 作用:在组件挂载之前调用(即 DOM 渲染之前)。
  • 用法:用于执行组件挂载前的准备工作。
javascript 复制代码
import { onBeforeMount } from 'vue';

onBeforeMount(() => {
  console.log('组件即将挂载');
});

2. onMounted (组合式 API)

  • 作用:组件挂载完成后调用(即 DOM 渲染完成后)。
  • 用法:可以用来执行依赖 DOM 的操作,例如获取 DOM 元素或初始化第三方库。
javascript 复制代码
import { onMounted } from 'vue';

onMounted(() => {
  console.log('组件挂载完成');
});

3. onBeforeUpdate (组合式 API)

  • 作用:在组件的响应式数据发生变化并重新渲染之前调用。
  • 用法:用于访问数据变化前的状态,可以进行一些数据预处理。
javascript 复制代码
import { onBeforeUpdate } from 'vue';

onBeforeUpdate(() => {
  console.log('组件数据更新前');
});

4. onUpdated (组合式 API)

  • 作用:在组件重新渲染后调用。
  • 用法:当组件的响应式数据更新并且 DOM 被重新渲染后,可以执行一些 DOM 操作或更新。
javascript 复制代码
import { onUpdated } from 'vue';

onUpdated(() => {
  console.log('组件更新完成');
});

5. onBeforeUnmount (组合式 API)

  • 作用:在组件销毁之前调用。
  • 用法:适用于清理操作,如移除事件监听器、取消定时器等。
javascript 复制代码
import { onBeforeUnmount } from 'vue';

onBeforeUnmount(() => {
  console.log('组件销毁前');
});

6. onUnmounted (组合式 API)

  • 作用:组件销毁后调用。
  • 用法:可以在组件销毁后进行清理工作,例如清理全局事件、取消异步请求等。
javascript 复制代码
import { onUnmounted } from 'vue';

onUnmounted(() => {
  console.log('组件销毁后');
});

7. onErrorCaptured (组合式 API)

  • 作用:捕获子组件中的错误并执行一些操作。
  • 用法:用于全局错误处理。
javascript 复制代码
import { onErrorCaptured } from 'vue';

onErrorCaptured((err, instance, info) => {
  console.error('捕获到错误:', err);
  return false; // 继续传递错误
});

Vue 3 生命周期钩子函数(选项式 API)

除了组合式 API,Vue 3 也保留了选项式 API 中的生命周期钩子。它们的名称和 Vue 2 中类似,如下所示:

  • beforeCreate:组件实例创建之前。
  • created:组件实例创建完成后。
  • beforeMount:模板挂载之前。
  • mounted:模板挂载完成后。
  • beforeUpdate:数据发生变化之前。
  • updated:数据发生变化之后。
  • beforeDestroy:组件销毁之前。
  • destroyed:组件销毁之后。

小结

Vue 3 的生命周期钩子函数允许你在组件的不同阶段进行自定义操作,从创建到销毁,每个阶段都有其特定的钩子。通过合理使用这些钩子函数,你可以更灵活地管理组件的状态和行为。

相关推荐
BigTopOne5 分钟前
什么是行权价,什么是权利金,什么是行权?
前端
xlxxy_7 分钟前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm
BigTopOne8 分钟前
Long put and Long call
前端
摇滚侠13 分钟前
SpringBoot3+Vue3 全套视频教程 61
vue.js
breeze jiang13 分钟前
告别等待焦虑:Vue 3 + DeepSeek 实现 AI 打字机流式对话,用户体验提升立竿见影
vue.js·人工智能·ux
石像鬼₧魂石17 分钟前
【Y2Ksoft】贵阳陈桥饭店ERP管理系统
大数据·前端·物联网·html·数据库架构
TheITSea23 分钟前
4、React+Tailwind CSS
前端·css·react.js
weedsfly30 分钟前
前端开发中的代理模式——从 Vue 3 响应式到日常开发
前端·javascript·面试
Li.map1 小时前
CesiumJS 地图主题系统:用着色器打造实时滤镜
javascript·arcgis·cesium·着色器
用户298698530141 小时前
在 React 中通过 JavaScript 实现 Excel 单元格、行与列的锁定保护
javascript·react.js·excel