Vue3实战笔记(61)—Vue 3 Watch进化论:解锁实时数据监听新境界

devtools/2024/9/24 17:13:12/

文章目录

  • 前言
  • 基本使用
  • 总结


前言

Vue 3 中的 watch 功能相比Vue 2有了改进和扩展,旨在提供更灵活的数据监听方式。


基本使用

Vue 3中的watch可以用于Composition API和Options API,但Composition API的使用更为常见。它主要用于监听响应式数据的变化,并在数据变化时执行特定的逻辑。

Composition API中的使用

javascript">import { ref, watch } from 'vue'const count = ref(0)watch(count, (newValue, oldValue) => {console.log(`count changed from ${oldValue} to ${newValue}`)
})

在这个例子中,watch监听count的任何变化,并在变化时打印出新旧值。

多个数据源
你也可以同时监听多个数据源的变化:

javascript">const count = ref(0)
const name = ref('')watch([count, name], ([newCount, newName], [oldCount, oldName]) => {console.log(`count: ${oldCount} -> ${newCount}, name: ${oldName} -> ${newName}`)
})

配置选项
watch接受第三个参数,用于配置监听行为,如:

immediate: 设置为true时,会在初始渲染时立即触发回调函数。

deep: 如果监听的对象或数组内部发生了变化,设置为true会触发回调。默认为false,只监听引用的变化。

javascript">watch(count, (newValue, oldValue) => {// 逻辑处理
}, {immediate: true,deep: true
})

使用Ref和Reactive
对于ref定义的响应式数据,直接传递给watch即可。

对于reactive定义的对象,你可以直接传入整个对象,或使用解构语法监听特定属性。

watchEffect
Vue 3还引入了watchEffect,它会自动收集依赖并运行副作用函数,每当依赖发生变化时,都会重新运行。与watch不同,watchEffect不需要明确指定依赖,更适合依赖数据较多且难以枚举的场景。

javascript">import { watchEffect } from 'vue'watchEffect(() => {// 这里的逻辑会自动监听所有被访问的响应式数据console.log(count.value, name.value)
})

总结

Vue 3的watch提供了一种强大的方式来监听数据变化,支持更细致的控制和更高效的逻辑处理。通过结合watchEffect,开发者可以根据具体需求灵活选择最适合的监听方式,从而提升应用的响应性和用户体验。

蹉跎只能感动自己,行动才能打动别人。


http://www.ppmy.cn/devtools/46500.html

相关文章

探究Spring中的Controller:单例、多例及其并发安全性

1. Spring框架的简介 Spring是一个开源的Java平台,用来简化企业级应用程序的开发。Spring框架提供了一整套统一的编程模型,使得开发人员能够更加专注于业务逻辑,而不必去处理复杂的技术细节。Spring包含多个模块,其中最常使用的就…

怎么用NodeJS脚本实现远程控制空调

怎么用NodeJS脚本实现远程控制空调呢? 本文描述了使用NodeJS脚本调用HTTP接口,实现控制空调,通过不同规格的通断器,来控制不同功率的空调的电源。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备…

Vuforia AR篇(六)— Mid Air 半空识别

目录 前言一、什么是Mid Air?二、使用步骤三、示例代码四、效果 前言 增强现实(AR)技术正在改变我们与数字世界的互动方式。Vuforia作为先进的AR开发平台,提供了多种工具来创造引人入胜的AR体验。其中,Mid Air功能以其…

ChatGPT 宕机部分用户访问报错 api key开发应用不影响

就在今日4号下午,有部分用户反映ChatGPT访问报错,不幸的是,ChatGPT 目前对某些用户不可用 - 该问题已被发现,OpenAI 团队正在努力解决它 似乎就api 开发使用key的应用不受影响 以下是对接ChatGPT api key开发的应用正常对话

Java线程安全问题

Java 线程安全问题 当我们使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题。但是如果多个线程中对资源有读和写的操作,就容易出现线程安…

SOFA-RPC学习记录

文章目录 需求分析模块划分微服务模块交互模块 可拓展架构插件机制 功能分析交互模块 学习微服务模块交互模块 dubbo与nacos集成学习Nacos配置中心实战 dubbo与apollo集成学习配置中心组件与k8s的抉择参考资料 结论 本报告旨在深入学习SOFA-RPC框架,特别是其动态配置…

数据库查询字段在哪个数据表中

问题的提出 当DBA运维多个数据库以及多个数据表的时候,联合查询是必不可少的。则数据表的字段名称是需要知道在哪些数据表中存在的。故如下指令,可能会帮助到你: 问题的处理 查找sysinfo这个字段名称都存在哪个数据库中的哪个数据表 SELEC…

28份 | FCIS 2023网络安全创新大会(公开)PPT分享

1、AIGC安全审计框架初探 2、AI领航,提效网络安全运营新未来 3、AI时代大模型安全分析 4、AI在企业内部的机遇与挑战 5、从0开始设计webshell管理工具 6、从实战看红队进攻技巧 7、移动终端软件供应链安全治理探讨 8、大模型时代下蓝军攻防实践 9、多视角下…