vue3中watch的写法大合集。
VUE2的watch是一个属性写法是
watch:{
data1(newVal,oldVal){
同步/异步操作
}
}
VUE3的watch则是一个函数,写法是

注意数据必须是响应式的
let num = ref(0)
//watch(要监听的响应式数据,(新值,旧值)=>{更新时的回调})
watch(num,(newValue,oldValue)=>{
console.log(newValue);
})
const add = ()=>{
num.value++
}
let obj = reactive({
num2:20
})
let {num2} =toRefs(obj)
const add2 = ()=>{
num2.value=num2.value+2
}
watch(num2,(newVlaue,oldValue)=>{
console.log("num2",newVlaue);
})
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的写法大合集。的更多相关文章
- 网络安全中机器学习大合集 Awesome
网络安全中机器学习大合集 from:https://github.com/jivoi/awesome-ml-for-cybersecurity/blob/master/README_ch.md#-da ...
- Lucene搜索方式大合集
package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...
- [题解+总结]动态规划大合集II
1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2. ...
- [题解+总结]NOIP动态规划大合集
1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...
- 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )
从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 ) 我现在在Coursera上面学data science 中的R programming,过去很少接 ...
- 直接拿来用!Facebook移动开源项目大合集
直接拿来用!Facebook移动开源项目大合集 时间:2014-04-22 15:37 作者:唐小引 随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目. ...
- python字符串操作实方法大合集
python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下: #1.去空格及特殊符号 s.st ...
- 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总
Oracle的产品非常丰富,各类学习资源也五花八门,本文将介绍Oracle官方的免费教程与风哥整理的Oracle视频教程: 1.Oracle帮助中心 Oracle帮助中心也称为Oracle文档中心,这 ...
- Android软件开发之盘点全部Dialog对话框大合集(一)
对话框大合集 今天我用自己写的一个Demo和大家具体介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 个button 通过调用setPositiveButton方法和 setNeg ...
- HCNP学习笔记之史上最全华为路由器交换机配置命令大合集
先来一张思科和华为命令的对照表: 史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置.交换机的配置命令等等. 华为路由器 ...
随机推荐
- web自动化测试python+selenium----API
import time from selenium import webdriver # 启动谷歌浏览器,开启与浏览器之间的会话 driver = webdriver.Chrome() # 访问一个网 ...
- dotnet 项目生成自签名证书
解决dotnet 项目浏览器不安全提示 dotnet dev-certs - 生成自签名证书,以便在开发中使用 HTTPS. dotnet dev-certs https --clean dotnet ...
- nuxt.js的生命周期
nuxt的生命周期分为客户端生命周期,服务端生命周期 1.服务端的生命周期 执行顺序为:nuxtServerlnit(store,context){}, 类似于vue.js中的main.js.可以在 ...
- Navicat Premium 12 安装破解过程 (经过测试)
@ 目录 下载安装 下载 解压文件目录 安装使用步骤截图 1. 安装navicat120_premium_cs_x64.exe 软件 2. 解压Navicat.Premium 破解补丁.rar 3. ...
- Vue3 animate.css + wowjs 官网实现滚动到对应元素位置增加动画特效
本人在Vue3中使用的是 setup语法糖 也就是 <script setup>...</ script> 在项目中install一下两个插件: yarn add animat ...
- Sentinel介绍与使用
https://blog.csdn.net/noaman_wgs/article/details/103328793
- EurekaServer高可用搭建
生产环境中需要搭建集群达到高可用.eurekaServer每个实例可以注册到其他一个或多个eurekaServer实例中达到高可用.配置比较简单 比如: application-master.prop ...
- css3 新增的特性有哪些?
css3 选择器. css3边框(borders) css3 背景 css3 渐变 css3 文本效果 css3 字体(@font-size规则) css3 转化和变形 1)2D转换方法 2)3D转换 ...
- Arrays.asList()需要注意的点
千万不要这样使用Arrays.asList ! 测试的几种情况及原因: public static void main(String[] args) { //第一种基本类型数组 int[] arr = ...
- scrapy框架中的pipelines没有成功调用process_item方法
提示报错 原因: items没有接收到Spider的返回值,导致pipelines没有接收到items模块的返回值,检查Spider模块是否正确返回值,我这里的原因是,数据解析完成后没有yield i ...