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

vue3中的watch

在Vue3中,watch中的参数可以分为两部分,即要监听的响应式数据以及回调函数。

语法格式如下:


watch(要监听的响应式数据, 回调函数)

除了以上的两个还有其他的参数

  • immediate:是否在初始化时立即执行一次回调函数,默认为false
  • deep:是否深度观察对象或数组的变化,默认为false
  • flush:在触发回调函数之前进行何种操作,默认为"pre"。可选值有:"pre"(立即更新DOM)、"post"(延迟到队列中的所有回调函数执行完毕后再更新DOM)和"sync"(在变更时同步应用更改)。
  • onTrigger:在触发回调函数之前执行的函数。
  • onStop:当停止观察时执行的函数。
  • lazy:是否初始不触发回调函数,默认为false

参数说明:

  • 要监听的响应式数据:可以是一个ref对象、reactive对象或者计算属性等
  • 回调函数:当被监听的响应式数据发生变化时,回调函数会被调用,可以接受到被监听的数据的新值和旧值

示例代码:


import { reactive, watch } from 'vue'
const state = reactive({count: 0
})
watch(() => state.count, (newValue, oldValue) => {console.log('count发生变化:', newValue, oldValue)
})
state.count++ // count发生变化: 1 0import { watch, ref, reactive } from 'vue';
// 观察一个响应式对象
const state = reactive({name: 'John',age: 25,
});
watch(() => state.name, (newValue, oldValue) => {console.log(`Name changed from ${oldValue} to ${newValue}`);
});
// 观察一个ref
const count = ref(0);
watch(() => count.value, (newValue, oldValue) => {console.log(`Count changed from ${oldValue} to ${newValue}`);
});
// 观察一个函数
watch(() => {return state.age * count.value;},(newValue, oldValue) => {console.log(`Computed value changed from ${oldValue} to ${newValue}`);}
);
// 监听多个数据源
watch([() => state.name, () => count.value], ([newName, newCount], [oldName, oldCount]) => {console.log(`Name changed from ${oldName} to ${newName}`);console.log(`Count changed from ${oldCount} to ${newCount}`);
});
// 配置项示例
watch(() => state.name,(newValue, oldValue) => {console.log(`Name changed from ${oldValue} to ${newValue}`);},{ immediate: true } // 立即执行回调函数
);
值得注意的是,在Vue3中,watch函数返回一个stop函数,用于停止侦听。你可以使用stop函数来停止之前注册的watch:const stopWatcher = watch(() => state.name, (newValue, oldValue) => {console.log(`Name changed from ${oldValue} to ${newValue}`);
});
// 停止监听
stopWatcher();
http://www.lryc.cn/news/179936.html

相关文章:

  • 开绕组电机零序Bakc EMF-based无感控制以及正交锁相环inverse Park-based
  • 番外5:下载+安装+配置Linux
  • 新手--安装好Quartus II13.0(带modelsim集成包)并用Quartus II搭建一个工程
  • python监控软件内存、cpu和GDI
  • wordpress搭建自己的博客详细过程以及踩坑
  • 在jupyter中更改、增加内核
  • Redis代码实践总结(二)
  • 读取一张图片各种颜色占比
  • C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
  • Blued引流脚本
  • 数据结构之美:如何优化搜索和排序算法
  • Unity 鼠标悬浮时文本滚动(Text Mesh Pro)
  • GNN PyG~torch_geometric 学习理解
  • ChatGPT 调教指南:从 PDF 提取标题并保存
  • 【day10.01】使用select实现服务器并发
  • Android修行手册 - Activity 在 Java 和 Kotlin 中怎么写构造参数
  • 【IPC 通信】信号处理接口 Signal API(7)
  • springboot和vue:十二、VueRouter(动态路由)+导航守卫
  • 文心一言 VS 讯飞星火 VS chatgpt (103)-- 算法导论10.1 1题
  • 【ShaderLab罪恶装备卡通角色_二次元风格_“Sol Badguy“_角色渲染(第二篇)】
  • raw智能照片处理工具DxO PureRAW mac介绍
  • 1.centos7 安装显卡驱动、cuda、cudnn
  • WordPress主题开发( 十四)之—— 主题开发示例
  • rust学习-any中的downcast和downcast_ref
  • js检测数据类型总结
  • 获奖作品展示 | 2023嵌入式大赛AidLux系列作品精彩纷呈
  • Mybatis 二级缓存(使用Redis作为二级缓存)
  • VMware vSphere ESXI 6.7 U3封装RTL8125B网卡驱动
  • 黑马JVM总结(二十五)
  • 基础数据结构之——【顺序表】(上)