「Vue3系列」Vue3 组合式 API 生命周期钩子

文章目录

  • 一、Vue3 组合式 API 生命周期钩子
    • 1. `onMounted`
    • 2. `onUnmounted`
    • 3. `onBeforeMount`
    • 4. `onUpdated`
    • 5. `onBeforeUpdate`
    • 6. `onErrorCaptured`
    • 7. `onActivated`
    • 8. `onDeactivated`
  • 二、Options API 和 Composition API 之间的映射
  • 三、组合式 API
  • 四、相关链接

一、Vue3 组合式 API 生命周期钩子

在 Vue 3 的组合式 API 中,生命周期钩子可以通过导入相应的函数来使用。这些函数允许你在组件的不同生命周期阶段执行特定的逻辑。以下是 Vue 3 组合式 API 中可用的生命周期钩子及其用法:

1. onMounted

当组件被挂载到 DOM 上后调用。在这个阶段,你可以访问和操作 DOM 元素,或者执行需要依赖 DOM 的操作。

import { onMounted, ref } from 'vue';export default {setup() {const element = ref(null);onMounted(() => {console.log(element.value); // 访问挂载后的 DOM 元素});return {element,};},
};

2. onUnmounted

当组件实例被卸载和解构时调用。在这个阶段,你可以执行清理操作,如取消事件监听器或清理定时器。

import { onUnmounted, ref } from 'vue';export default {setup() {const timer = ref(null);onMounted(() => {timer.value = setInterval(() => {console.log('Timer ticked.');}, 1000);});onUnmounted(() => {clearInterval(timer.value); // 清除定时器});return {};},
};

3. onBeforeMount

在组件挂载到 DOM 之前调用:相关的 render 函数首次被调用。

import { onBeforeMount } from 'vue';export default {setup() {onBeforeMount(() => {console.log('Component is about to be mounted.');});return {};},
};

4. onUpdated

当组件的响应式状态更改导致组件重新渲染后调用。

import { onUpdated, ref } from 'vue';export default {setup() {const count = ref(0);onUpdated(() => {console.log(`Updated count: ${count.value}`);});return {count,};},
};

5. onBeforeUpdate

在组件的响应式状态更改导致重新渲染之前调用。

import { onBeforeUpdate } from 'vue';export default {setup() {onBeforeUpdate(() => {console.log('Component is about to be updated.');});return {};},
};
};

6. onErrorCaptured

当组件或其子组件的渲染函数、生命周期钩子或事件处理器中发生错误时调用。

import { onErrorCaptured } from 'vue';export default {setup() {onErrorCaptured((err, vm, info) => {console.error('Captured error:', err);return false; // 返回 false 以阻止错误继续向上冒泡});return {};},
};

7. onActivated

对于 <keep-alive> 包裹的组件,当组件被激活时调用。

import { onActivated } from 'vue';export default {setup() {onActivated(() => {console.log('Component was activated.');});return {};},
};

8. onDeactivated

对于 <keep-alive> 包裹的组件,当组件被停用时调用。

import { onDeactivated } from 'vue';export default {setup() {onDeactivated(() => {console.log('Component was deactivated.');});return {};},
};

要使用这些生命周期钩子,只需在 setup 函数中导入它们,并按照需要调用即可。这些钩子函数接收与选项式 API 中的生命周期钩子相同的参数,并允许你以函数式的方式处理组件的生命周期事件。

二、Options API 和 Composition API 之间的映射

Vue2 Options-based APIVue Composition API
beforeCreatesetup()
createdsetup()
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted
errorCapturedonErrorCaptured

三、组合式 API

Vue 3 引入了组合式 API(Composition API),它是一种新的 API,用于构建 Vue 组件的逻辑。这种 API 解决了大型组件中逻辑难以组织和复用的问题,并提供了更灵活的方式来组织和共享代码。

组合式 API 的核心思想是将组件的逻辑分割成更小的函数(或称为“组合函数”),这些函数可以根据需要被引入和重用。这有助于将组件的逻辑划分为更小的、更易于管理的部分,并提高了代码的可读性和可维护性。

四、相关链接

  1. Vue3官方地址
  2. Vue3中文文档
  3. 「Vue3系列」Vue3简介及安装
  4. 「Vue3系列」Vue3起步/创建项目
  5. 「Vue3系列」Vue3指令
  6. 「Vue3系列」Vue3 模板语法
  7. 「Vue3系列」Vue3 条件语句/循环语句
  8. 「Vue3系列」Vue3 组件
  9. 「Vue3系列」Vue3 计算属性(computed)、监听属性(watch)
  10. 「Vue3系列」Vue3 样式绑定
  11. 「Vue3系列」Vue3 事件处理
  12. 「vue3系列」Vue3 表单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.2.3 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 禾赛科技2024届春招全面开启&#xff01; 校招 | 禾赛科技2024届春招全面开启&#xff01; 2、校招 | 格力电器2024届春招简历可投递 校招 | 格力电器2024届春招简历可投递 3、…

视频编解码技术介绍 - 基本概念篇

第一章 视频编解码技术介绍 - 基本概念篇 文章目录 前言1. 我的疑问1.1 什么是视频编解码技术1.2 为什么会有视频编解码技术1.3 视频编解码中有哪些核心技术1.4 作为开发者需要重点了解视频编解码中的哪些技术 2. 视频编解码的历史3. 基本概念3.1 像素3.2 分辨率3.3 ppi(像素密…

前端 类数组对象 学习

首先&#xff0c;我们先预习一下对象数组和数组对象的概念&#xff1a; 对象数组&#xff1a;指的是一个数组&#xff0c;其中的每个元素都是一个对象。这些对象可以包含多个属性&#xff0c;形成一个包含多个对象的数组结构。比如下面这个&#xff1a; // 创建一个对象数组存…

CorelDRAW下载2024最新版专业的平面设计软件,专注于矢量图形编辑与排版

CorelDRAW是一款功能强大的矢量图形设计软件&#xff0c;广泛应用于标志设计、插画绘制、排版印刷、VI设计、包装设计、网页制作等众多领域。它提供了丰富的绘图工具和特效&#xff0c;使用户能够轻松地创建和编辑复杂的矢量图形。CorelDRAW还支持导入和导出多种文件格式&#…

RabbitMQ 安装使用

文章目录 RabbitMQ 安装使用安装下载 Erlang下载 RabbitMQ 的服务安装好后看是否有 RabbitMQ 的服务开启管理 UIRabbitMQ 端口使用一览图 使用输出最简单的 Hello World&#xff01;生产者定义消费者消费消息小拓展 RabbitMQ 安装使用 安装 下载 Erlang RabbitMQ 是用这个语…

【机器学习300问】30、准确率的局限性在哪里?

一、什么是准确率&#xff1f; 在解答这个问题之前&#xff0c;我们首先得先回顾一下准确率的定义&#xff0c;准确率是机器学习分类问题中一个很直观的指标&#xff0c;它告诉我们模型正确预测的比例&#xff0c;即 还是用我最喜欢的方式&#xff0c;举例子来解释一下&#xf…

倒计时35天

dp预备(来源&#xff1a;b站acm刘春英老师) 1. 2. 3. 4. 5. 6. 7.

13:大数据与Hadoop|分布式文件系统|分布式Hadoop集群

大数据与Hadoop&#xff5c;分布式文件系统&#xff5c;分布式Hadoop集群 Hadoop部署Hadoop HDFS分布式文件系统HDFS部署步骤一&#xff1a;环境准备HDFS配置文件 查官方手册配置Hadoop集群 日志与排错 mapreduce 分布式离线计算框架YARN集群资源管理系统步骤一&#xff1a;安装…

spring boot 集成 mysql ,mybatisplus多数据源

1、需要的依赖&#xff0c;版本自行控制 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId> </dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java<…

初阶数据结构之---二叉树的顺序结构-堆

引言 今天要讲的堆&#xff0c;不是操作系统虚拟进程地址空间中&#xff08;malloc&#xff0c;realloc等开空间的位置&#xff09;的那个堆&#xff0c;而是数据结构中的堆&#xff0c;它们虽然名字相同&#xff0c;却是截然不同的两个概念。堆的底层其实是完全二叉树&#x…

【spark operator】spark operator动态分配executor

背景&#xff1a; 之前在使用spark operator的时候必须指定executor的个数&#xff0c;在将任务发布到spark operator后&#xff0c;k8s会根据指定的个数启动executor&#xff0c;但是对于某些spark sql可能并不需要用到那么多executor&#xff0c;在此时executor的数量就不好…

Python快速入门系列-1

Python快速入门系列 第一章: Python简介1.1 Python的历史与发展1.2 Python的优势与特点1.2.1 易学易用1.2.2 动态类型1.2.3 丰富的标准库与第三方库1.2.4 面向对象与函数式编程1.2.5 广泛应用领域 1.3 Python的应用领域 第一章: Python简介 1.1 Python的历史与发展 Python是一…

sizeof和strlen的详细万字解读

sizeof和strlen的对比 sizeof不是函数 侧面证明sizeof不是函数 如果是函数 应该需要有括号 不能落下来 strlen 只针对字符串 包含头文件 string.h 并且这个是个函数 随机数值 sizeof里面有表达式的话 表达式里面是不参与计算的 下面的s求出的是4 就是因为是不参与计算的 不…

AI绘画StableDiffusion实操教程:冰霜旗袍美女

前几天分享了StableDiffusion的入门到精通教程&#xff1a;AI绘画&#xff1a;Stable Diffusion 终极炼丹宝典&#xff1a;从入门到精通 但是还有人就问&#xff1a;安装是安装好了&#xff0c;可是为什么生成的图片和你生成的图片差距那么远呢&#xff1f; 怎么真实感和质感…

拥塞控制 计算机网络

因为出现过量的分组&#xff0c;而引起的网络性能下降的现象称为拥塞。 判断网络是否进入拥塞状态的方法是&#xff0c;观察网络的吞吐量和网络负载的关系&#xff0c;如果网络负载的增加&#xff0c;网络的吞吐量明显小于正常的吞吐量&#xff0c;则网络就可能进入轻度的拥塞…

webservice soap协议

SOAP协议种类 详细说明JAX、Axis和HTTPSOAP的相关信息&#xff1a; JAX&#xff08;Java API for XML Web Services&#xff09;&#xff1a;JAX是Java提供的一组API&#xff0c;用于开发基于XML的Web服务。JAX包括JAX-WS&#xff08;Java API for XML Web Services&#xff0…

pytorch CV入门3-预训练模型与迁移学习

专栏链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12578430.html 初次编辑&#xff1a;2024/3/7&#xff1b;最后编辑&#xff1a;2024/3/8 参考网站-微软教程&#xff1a;https://learn.microsoft.com/en-us/training/modules/intro-computer-vision-pytorc…

【JavaScript】Var、Let 和 Const 有什么区别

JavaScript 中的 Var、Let 和 Const 有什么区别 ES2015&#xff08;ES6&#xff09;推出了许多闪亮的新功能。从 2020 年开始&#xff0c;我们假设许多 JavaScript 开发人员已经熟悉并开始使用这些功能。 ES6 附带的功能之一是添加了let和const&#xff0c;可用于变量声明。问…

GitHub会员充值

GitHub是一个基于Web的代码托管平台&#xff0c;为开发者提供了协作、版本控制和代码管理的工具。它允许个人和团队共同协作开发软件项目&#xff0c;并提供了许多功能&#xff0c;使得代码的管理和维护更加容易 版本控制系统&#xff1a; GitHub使用Git作为其版本控制系统。Gi…

基于Springboot的高校宣讲会管理系统。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的高校宣讲会管理系统。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…