当前位置: 首页 > news >正文

Vue3中watch和watchEffect区别和用法

使用过 Vue 的小伙伴,不管时 Vue2 还是 Vue3,我相信你都用过 Vue 中的监听器。监听器的作用就和它的名字一样:用来监听某个东西是否发生变化!我们很多需求都会用到监听器 watch,但是 Vue2Vue3 中的监听器的用法有些许不一样,这就让一些从 Vue2Vue3 的小伙伴不太适应,所以,我们今天就来好好学一学 Vue3 中的监听器如何使用!

1.环境准备

为了方便演示和编写代码,我们直接使用 vite 搭建一个 Vue3 的基础项目。

创建命令:

npm create vite@latest my-vite-app --template vue-ts

删除 App.vue 中一些不需要的东西,然后运行项目:

2.watch

2.1 watch 基本使用

Vue3 中的组合式 API 中,watch 的作用和 Vue2 中的 watch 作用是一样的,他们都是用来监听响应式状态发生变化的,当响应式状态发生变化时,都会触发一个回调函数。

代码如下:

<template> 
<img alt="Vue logo" src="./assets/logo.png" /> 
<p>{{ message }}</p> 
<button @click="changeMsg">更改 message</button> 
</template> 
<script setup lang="ts"> 
import { ref, watch } from "vue"; 
const message = ref("小猪课堂"); 
watch(message, (newValue, oldValue) => { console.log("新的值:", newValue); console.log("旧的值:", oldValue); 
}); 
const changeMsg = () => { message.value = "张三"; }; 
</script>

上段代码中我们点击按钮就会更改响应式变量 message 的值。我们又使用 watch 监听器监听了 message 变量,当它发生变化时,就会触发 watch 监听函数中的回调函数,并且回调函数默认接收两个参数:新值和旧值。

注意:当我们第一进入页面时,watch 监听函数的回调函数是不会执行的。

输出结果:

2.2 watch 监听类型

前面我们一直强调 watch 监听的是响应式数据,如果我们监听的数据不是响应式的,那么可能会抛出如下警告:

那么哪些数据是属于响应式的,或者换个说法,watch 监听器可以监听哪些形式的数据呢?

(1)ref 和计算属性

ref 定义的数据我们是可以监听到的,因为我们前面的代码以及证明了。除此之外,计算属性也是可以监听到的,比如下列代码:

const message = ref("小猪课堂"); 
const newMessage = computed(() => { return message.valu
http://www.dtcms.com/a/292772.html

相关文章:

  • 安装UV(一个python工具)
  • C语言符号可见性控制与工程实践——深入理解 __attribute__((visibility)) 和 -fvisibility=hidden
  • 【bug】Yolo11在使用tensorrt推理numpy报错
  • 在线教育培训课程视频如何防下载、防盗录?
  • Java(LinkedList和ArrayList底层分析)
  • UML中的多重性详解
  • 【QT常用技术讲解】QSystemTrayIcon系统托盘
  • cuda做lut 去畸变示例
  • APT32F1732RBT8爱普特微电子 32位MCU国产芯片 智能家居/工业控制 首选
  • 【Word Press基础】创建一个自定义区块
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(7):自動詞 & 他動詞
  • Matlab学习笔记:矩阵基础
  • 鸿蒙卡片开发保姆级教程
  • 【Kubernetes】集群外使用 kubectl 命令连接集群
  • 数据结构 之 【排序】(直接选择排序、堆排序、冒泡排序)
  • LS-DYNA | 载荷与边界条件
  • 内网穿透利器:基于HTTPHTTPS隧道的代理工具深度解析
  • Monkey OCR简单介绍
  • 为什么要微调大语言模型
  • 高等数学-矩阵知识
  • rocky9-zabbix简单部署
  • 如何实战适配政务服务智能体中台?
  • 中烟创新灯塔大模型应用开发平台入选工信部“政务大模型应用典型案例”
  • 【Android】xml和Java两种方式实现发送邮件页面
  • 在Python中操作Word
  • 嵌入式学习-土堆目标检测(3)-day27
  • Python 综合运用:MD 转 DOCX 工具
  • 上网行为管理知识
  • 054_TreeMap / LinkedHashMap
  • 小程序上传头像解析