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

Vue3中的watch监听

目录

一、监听基础ref类型

1、监听单个ref数据

2、 监听多个ref数据

二、监听reactive类型

1、监听对象中单个属性

 2、监听对象中多个属性

  3、同时监听ref基本类型数据和reactive对象中的属性

 4、监听整个对象

  5、监听对象中值为对象的属性

三、watchEffect


一、监听基础ref类型

1、监听单个ref数据

2、 监听多个ref数据

二、监听reactive类型

1、监听对象中单个属性

监听 user.more.iPhone 属性,那么只有当iPhone属性发生变更时,才会触发 watch 方法,其他属性变更不会触发 watch 方法。注意,此时的第一个参数是一个箭头函数

 2、监听对象中多个属性

  3、同时监听ref基本类型数据和reactive对象中的属性

 

 4、监听整个对象

当监听整个对象时,只要这个对象有任何修改,那么就会触发 watch 方法。无论是其子属性变更(如 user.name),还是孙属性变更(如 user.more.iPhone)...,都是会触发 watch 方法的。

  5、监听对象中值为对象的属性

方式1:不用箭头函数,则可以不用deep:true

 方式二:用箭头函数时,则必须加上{deep:true}才能触发监听

三、watchEffect

不用指明监视哪个属性,监视的回调用到哪个属性,就去监视哪个属性

  1. watch可以访问新值和旧值,watchEffect不能访问。
  2. watch需要指明监听的对象,也需要指明监听的回调。watchEffect不用指明监视哪一个属性,监视的回调函数中用到哪个属性,就监视哪个属性。
  3. watch只有监听的值发生变化的时候才会执行,但是watchEffect不同,每次代码加载watchEffect都会执行。

<template>
  <div>nums:<input v-model="nums" /></div>
  <div>user.age:<input v-model="user.age" /></div>
  <button @click="user.more.iPhone = 22222">改变more</button>
</template>
<script setup>
const nums = ref(1);

const user = reactive({
  name: "张三",
  age: 23,
  more: {
    iPhone: 1111,
    address: "aaa",
  },
});
watchEffect(() => {
  const x1 = nums.value;
  const x2 = user.age;
  const x3 = user.more.iPhone;

  console.log("watchEffect监听的回调执行了...");
});
watchEffect(() => {
  console.log("222222222...");
});
</script>

相关文章:

  • 【国产数据库】数据迁移至openGauss
  • 一道晦涩难懂的Pandas基础题
  • 边缘计算:一文理解云边端协同架构中的高性能云计算、边缘计算、云边协同
  • 【算法刷题篇】——算法入门 01 数据结构——栈(一)
  • 使用python进行数据分析(二)
  • C++实现二分法求零点(二分法求零点)
  • SECS/GEM半导体协议介绍
  • ARM接口实验-LED灯实验(A7核)
  • 经典卷积和深度卷积的神经网络
  • 【C语言】一篇文章彻底搞懂变量和常量
  • CSS基础12-canvas
  • javascript时钟的开发制作
  • 应用层协议 —— HTTP(二)
  • Qt之QCompleter的简单使用(自动补全、文本框提示、下拉框提示含源码+注释)
  • MyBatis-Plus(二)
  • php的引用
  • 【刷算法】从上往下打印二叉树
  • IDEA常用插件整理
  • JavaScript设计模式系列一:工厂模式
  • JS学习笔记——闭包
  • Mysql优化
  • Redis在Web项目中的应用与实践
  • uva 10370 Above Average
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 我的zsh配置, 2019最新方案
  • 一个项目push到多个远程Git仓库
  • AI算硅基生命吗,为什么?
  • C# - 为值类型重定义相等性
  • 阿里云移动端播放器高级功能介绍
  • 湖北分布式智能数据采集方法有哪些?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​io --- 处理流的核心工具​
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #QT(串口助手-界面)
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (floyd+补集) poj 3275
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (三)终结任务
  • (算法)求1到1亿间的质数或素数
  • (译) 函数式 JS #1:简介
  • (转) 深度模型优化性能 调参
  • (转)Oracle存储过程编写经验和优化措施
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ***监测系统的构建(chkrootkit )
  • ***原理与防范
  • .Family_物联网
  • .Net 4.0并行库实用性演练
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core跨平台微服务学习资源
  • .NET 的静态构造函数是否线程安全?答案是肯定的!