VUE2的watch是一个属性写法是

watch:{

    data1(newVal,oldVal){

                       同步/异步操作  

                               }
}

 VUE3的watch则是一个函数,写法是

注意数据必须是响应式的

let num = ref(0)
//watch(要监听的响应式数据,(新值,旧值)=>{更新时的回调})
watch(num,(newValue,oldValue)=>{
console.log(newValue);
})
const add = ()=>{
num.value++
}

 

/*
 监听对象里面的属性
 1.用reactive处理对象
 2.用torefs解构出要监听的属性
 3.watch(要监听的响应式数据,(新值,旧值)=>{更新时的回调})
*/

let obj = reactive({
num2:20
})
let {num2} =toRefs(obj)
const add2 = ()=>{
num2.value=num2.value+2
}
watch(num2,(newVlaue,oldValue)=>{
console.log("num2",newVlaue); })
//监听单个属性的另一种写法,不使用toRefs解构属性,将要监听的函数用函数的返回值形式表示

 watch(()=>obj.num,(newV,oldV)=>{
//监听单个属性的另一种写法,不使用toRefs解构属性
console.log('监听单个属性',oldV,newV); })

监视多个属性,需要将要监听的属性使用数组,依次传递,注意:返回的新值和旧值也是数组,和属性相对应。并且监听多个属性的事件是在监听单个属性后面执行的。

 watch([()=>obj.num,()=>obj.age],(newV,oldV)=>{
//监听多个属性
console.log('监听多个',oldV,newV);//监听多个属性要在监听单个属性后面执行 })

直接监听整个对象

  watch(obj,(oldV,newV)=>{
//监听整个对象
console.log('监听整个对象',oldV.age,newV.age); })

使用watchEffect函数,将监听的数据写在里面就会被监听到

 //watchEffect页面刷新之后立即执行,数据从undefined变成有值也能监听到
watchEffect(()=>{
//凡是写在这里的数据只要变化都会触发这里的代码执行
//通过add1或者add2方法改变写在这里的两个数据中的任意一个都会触log
console.log(obj.num);
console.log(per.age); })

vue3中watch的写法大合集。的更多相关文章

  1. 网络安全中机器学习大合集 Awesome

    网络安全中机器学习大合集 from:https://github.com/jivoi/awesome-ml-for-cybersecurity/blob/master/README_ch.md#-da ...

  2. Lucene搜索方式大合集

    package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...

  3. [题解+总结]动态规划大合集II

    1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2. ...

  4. [题解+总结]NOIP动态规划大合集

    1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...

  5. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  6. 直接拿来用!Facebook移动开源项目大合集

    直接拿来用!Facebook移动开源项目大合集 时间:2014-04-22 15:37 作者:唐小引 随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目. ...

  7. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  8. 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总

    Oracle的产品非常丰富,各类学习资源也五花八门,本文将介绍Oracle官方的免费教程与风哥整理的Oracle视频教程: 1.Oracle帮助中心 Oracle帮助中心也称为Oracle文档中心,这 ...

  9. Android软件开发之盘点全部Dialog对话框大合集(一)

    对话框大合集 今天我用自己写的一个Demo和大家具体介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 个button   通过调用setPositiveButton方法和 setNeg ...

  10. HCNP学习笔记之史上最全华为路由器交换机配置命令大合集

    先来一张思科和华为命令的对照表: 史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置.交换机的配置命令等等. 华为路由器 ...

随机推荐

  1. 威纶通作为modbusTcp主站应用

    1.在威纶通中添加modbus Tcp,作为主机,在Tcp服务器客户端模型中作为客户端: 2.威纶通地址与modbus标准功能码的对应关系: 地址1x_single_Bit,对应02功能码(读输入线圈 ...

  2. centeros忘记root登录密码

    转载自:https://www.cnblogs.com/dongml/p/10333819.html 很多时候我们都会忘记Linux root 用户的口令,下面就教大家如果忘记root口令怎么办 第1 ...

  3. Vuex----Actions

    Actions用于处理异步任务. 如果通过异步操作变更数据,必须通过 Action,而不能使用Mutation,但是在 Action中还是要通过触发Mutation的方式间接变更数据. 注意: 在Ac ...

  4. javascript原型,继承

    //普通对象 //函数对象(有原型 prototy 的属性) //原型的应用 继承 function Amial(){ this.type = '小于' } function cat(name){ t ...

  5. matlab 将某文件夹的内容复制到另一文件下

    %% 清空close all;clear;clc; %% 选择文件路径(复制某文件夹下部分文件夹到其他路径)folder = uigetdir('C:\Desktop','请选择文件夹'); %% i ...

  6. 面向对象的练习总结(java)

    三次作业总结博客 l  前言 第一次题目集是我刚刚接触java所做的第一套习题,本次题目难度不大,题量较多,涉及的知识点主要是基础的语法知识,出题人的意图是让我们尽快熟悉java的语法,由于事先有c语 ...

  7. ARM体系与架构【一】

    由于笔试题(摩尔线程笔试题)也出现了相关的题目,所以也顺便为此做一点点小准备. 1.ARM用什么类型的指令集 ARM架构用的是RISC精简指令集. 2.RISV与RISC指令集有什么区别 3.ARM架 ...

  8. 基于R的Bilibili视频数据建模及分析——预处理篇

    基于R的Bilibili视频数据建模及分析--预处理篇 文章目录 基于R的Bilibili视频数据建模及分析--预处理篇 0.写在前面 1.项目介绍 1.1 项目背景 1.2 数据来源 1.3 数据集 ...

  9. Sqoop从MySQL向Hive增量式导入数据报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

    1.问题描述: (1)问题示例: Step1:创建作业: [Hadoop@master TestDir]$ sqoop job \> --create myjob_1 \> -- impo ...

  10. yield总结

    1.使用yield  i def my_generator(n): for i in range(n): temp = yield i print(f'我是{temp}') g = my_genera ...