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

uniapp vue3 watch监听使用情况

使用setup 语法糖

首先引入watch

import {watch} from 'vue'

使用情况1:监听ref基本数据类型

const data = ref('') //基本数据类型:string | number | boolean | BigInt | Symbol | null | undefined;
watch(data,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

使用情况2:监听ref引用类型

const data = ref({})
watch(data,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
}, { deep: true }) //需要手动开启深度监视 { deep: true }

使用情况3:监听reactive定义的数据

注意:reactive 默认自动开启了深度监视,并且该深度监视不可通过配置项 { deep: false } 关闭

const data = reactive({})
watch(data,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
}, { deep: false}) //关闭无效

使用情况4:监听ref或reactive中具体的属性值的变化

注意:不管该属性值是基本数据类型还是引用数据,都建议使用函数形式

const data = reactive({name:''})
watch(()=>data.name,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})


const data = ref({age:''})
watch(()=>data.value.age,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})


const data = ref({
    config:{
       n:'' 
    }
})
watch(()=>data.value.config,(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

使用情况5:监听多个数据

const data1 = reactive({name:''})
const data2 = ref({age:''})
watch([()=>data1.name,()=>data2.value.age],(newVal, oldVal)=> {
   console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

参考文章:带你吃透 Vue3 中 侦听器 【watch ,watchEffect】数据监听的使用及注意事项_watcheffect深度监听-CSDN博客


http://www.kler.cn/news/353679.html

相关文章:

  • 【微服务】深入探讨微服务架构:现代软件开发的变革之路
  • 【Postgresql】根据响应数据反向实现建表语句与insert语句
  • C++11 wrapper装饰器 bind+function
  • 【服务器知识】Tomcat简单入门
  • 10月17日,每日信息差
  • Leetcode 最小栈
  • 小白投资理财 - 中国股票代号
  • NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?
  • 机器学习——主要分类
  • 2024软件测试面试大全(答案+文档)
  • Springboot 整合 Java DL4J 实现安防监控系统
  • 前端布局,y轴超出滚动、x轴超出展示方案
  • 全金属的两足机器人钢铁侠开发
  • [山河2024] week2
  • 基于机器学习的心脏病风险评估预测系统
  • JavaScript获取array中相同key的平均值
  • 基于SSM电子资源管理系统的设计
  • 《计算机视觉》—— 疲劳检测
  • Android Gralde 新版aar依赖问题解决
  • 滚雪球学Redis[4.2讲]:Redis Sentinel 深度解析:工作原理、配置与高可用架构下的故障转移