Vue3:watch监视的5种情况

news/2025/2/19 9:43:18/

一、情景说明

在Vue2中,watch的用法如下
https://blog.csdn.net/Brave_heart4pzj/article/details/135604394

这一篇,来学习Vue3中的watch用法

二、案例

1、监视ref定义的数据【基本类型】

引入函数

 import {ref,watch} from 'vue'

定义变量

    // 数据let sum = ref(0)

watch监视变量
注意:
1、监视的ref变量,不可以写成sum.value
2、这里居然可以递归调用哦!!!

    // 监视,情况一:监视【ref】定义的【基本类型】数据const stopWatch = watch(sum,(newValue,oldValue)=>{console.log('sum变化了',newValue,oldValue)if(newValue >= 10){stopWatch()}})

2、监视ref定义的数据【对象类型】

引入函数

 import {ref,watch} from 'vue'

定义变量

    // 数据let person = ref({name:'张三',age:18})

watch监视变量
监视的是对象的地址值
若想监视对象内部属性的变化,需要手动开启深度监视
watch的第一个参数是:被监视的数据
watch的第二个参数是:监视的回调
watch的第三个参数是:配置对象(deep、immediate等等…)
注意:
如果这里不配置deep项,则修改person里面的属性,不会触发监视。

    watch(person,(newValue,oldValue)=>{console.log('person变化了',newValue,oldValue)},{deep:true})

3、监视reactive定义的数据

引入函数

 import {reactive,watch} from 'vue'

定义变量

    // 数据let person = reactive({name:'张三',age:18})

watch监视变量
默认是开启深度监视的,且无法关闭

    watch(person,(newValue,oldValue)=>{console.log('person变化了',newValue,oldValue)})

4、有一个返回值的函数

解决,watch单独监视对象中某个属性的变化的情况
引入函数

 import {reactive,watch} from 'vue'

定义变量

  // 数据let person = reactive({name:'张三',age:18,car:{c1:'奔驰',c2:'宝马'}})

watch监视变量
1、监视响应式对象中的某个属性,且该属性是基本类型的,要写成函数式

     watch(()=> person.name,(newValue,oldValue)=>{console.log('person.name变化了',newValue,oldValue)})

2、监视响应式对象中的某个属性,且该属性是对象类型
可以直接写,也能写函数,更推荐写函数,根据需要开启深度监视

    watch(()=>person.car,(newValue,oldValue)=>{console.log('person.car变化了',newValue,oldValue)},{deep:true})

5、一个包含上述内容的数组

引入函数

 import {reactive,watch} from 'vue'

定义变量

  // 数据let person = reactive({name:'张三',age:18,car:{c1:'奔驰',c2:'宝马'}})

watch监视变量
监视多个属性,用数组组装后,即可进行监视

    watch([()=>person.name,person.car],(newValue,oldValue)=>{console.log('person.car变化了',newValue,oldValue)},{deep:true})

http://www.ppmy.cn/news/1379253.html

相关文章

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

MacBook2024苹果免费mac电脑清理垃圾软件CleanMyMac X

CleanMyMac X是一款专业的Mac清理软件,具备多种强大功能。首先,它能够智能清理Mac磁盘上的垃圾文件和多余语言安装包,从而快速释放电脑内存。其次,CleanMyMac X可以轻松管理和升级Mac上的应用,同时强力卸载恶意软件并修…

淘宝电商产品价格官方防爬取采集设计机制,如何破?|淘宝电商API数据采集看完你也会!

在当今数字化时代,电商平台如淘宝已经成为人们购物的主要渠道之一。然而,随着电子商务的蓬勃发展,涌现出大量的第三方工具和应用,试图通过采集淘宝电商产品价格等信息来进行数据分析和竞争优势的获取。为了维护市场秩序和保护商家…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:PluginComponent)

提供外部应用组件嵌入式显示功能,即外部应用提供的UI可在本应用内显示。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。本组件为系统接口。 子组件 无 接口 PluginComponent(value:…

PostgreSQL 安装部署

文章目录 一、PostgreSQL部署方式1.Yum方式部署2.RPM方式部署3.源码方式部署4.二进制方式部署5.Docker方式部署 二、PostgreSQL部署1.Yum方式部署1.1.部署数据库1.2.连接数据库 2.RPM方式部署2.1.部署数据库2.2.连接数据库 3.源码方式部署3.1.准备工作3.2.编译安装3.3.配置数据…

零基础自学C语言|自定义类型:结构体

✈结构体类型的声明 前面我们在学习操作符的时候,已经学习了结构体的知识,这里稍微复习一下。 🚀结构体回顾 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 🪂结构的声明 例如&a…

JimuReport积木报表 v1.7.2 版本发布,低代码报表工具

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

一文掌握python常用的tuple(元组)操作

目录 1. 元组的创建 2. 访问元组元素 3. 切片操作 4. 合并元组 5. 复制元组 6. 内置函数与方法 7. 元组拆分 8. 星号表达式在元组中的应用 9. 遍历元组 10. 元组的嵌套 11. 元组与条件判断和逻辑运算 12. 常见应用场景 13. 元组与枚举(Enum) 14. 元组推导式 1…