Vue 3 中 watch 与 watchEffect 到底怎么选?一文帮你彻底理清
前言在 Vue 3 的 Composition API 中watch 和 watchEffect 是两个最常用的响应式监听工具。但在实际项目开发中很多开发者包括刚接触 Vue 3 的我常常在两者之间纠结到底该用哪个它们的底层执行机制有什么区别本文将结合我在项目中踩过的坑帮你彻底理清它们的用法和选择时机。核心区别按需监听 vs 自动追踪要搞懂它们的区别我们只需要记住一句话watch 是“你指哪我打哪”而 watchEffect 是“我自动帮你找目标”。watch显式声明精准打击watch 需要你明确指定要监听的数据源。只有当这个数据发生变化时回调函数才会执行。适用场景你需要知道“变化前”和“变化后”的值或者只想在某个特定变量改变时触发逻辑如路由参数变化时重新请求数据。import { ref, watch } from ‘vue’;const keyword ref(‘’);// 明确监听 keywordwatch(keyword, (newVal, oldVal) {console.log(搜索词从 ${oldVal} 变成了 ${newVal});fetchData(newVal);});2. watchEffect自动收集依赖即插即用watchEffect 不需要你指定数据源。它会在首次执行时自动追踪内部用到的所有响应式变量。只要其中任何一个变了它就会重新执行。适用场景你只关心“执行某个副作用”不关心具体是哪个变量变了也不需要旧值如自动同步状态到本地存储、自动发起网络请求。import{ref,watchEffect}fromvue;constuserIdref(1);consttokenref(abc);// 自动追踪 userId 和 tokenwatchEffect((){console.log(重新获取用户信息:,userId.value,token.value);fetchUserInfo(userId.value,token.value);});项目实战我踩过的坑与最佳实践坑点在 watchEffect 中误用异步回调watchEffect 只能同步收集依赖。如果你在异步回调如 setTimeout 或 Promise.then里读取响应式变量它是无法追踪到的// ❌ 错误示范watchEffect 不会监听 count 的变化watchEffect(() {setTimeout(() {console.log(count.value); // 依赖收集失败}, 1000);});// ✅ 正确做法在 watchEffect 外部同步读取或者改用 watchwatchEffect(() {const currentCount count.value; // 同步读取成功收集依赖setTimeout(() {console.log(currentCount);}, 1000);});坑点watchEffect 导致的无限循环 如果在 watchEffect 内部修改了它自己追踪的变量就会触发无限循环。// ❌ 危险操作watchEffect(() {list.value list.value.filter(item item.isActive);});总结一图流选择指南需要旧值 选 watch只监听单一/特定几个变量 选 watch初始化时需要立即执行一次 选 watchEffect (或 watch 加 { immediate: true })逻辑简单不想写一堆数据源 选 watchEffect

相关新闻

Linux 分区标识神器 e2label 详解:ext4 分区卷标查看与设置实战指南

Linux 分区标识神器 e2label 详解:ext4 分区卷标查看与设置实战指南

1. 命令简介e2label 命令用于查看或设置 第二扩展文件系统(ext2)、第三扩展文件系统(ext3) 和 第四扩展文件系统(ext4) 的卷标(Label)。卷标是赋予文件系统的一个可读名称&#xff0…

2026/7/22 6:28:14阅读更多 →
GBase 8s数据库存储结构简介

GBase 8s数据库存储结构简介

理解存储结构是掌握数据库原理的关键一步。本文系统介绍 GBase 8s 数据库从物理存储单元到逻辑存储单元的层次关系,并与 Oracle 存储结构进行对照。一、GBase 8s 存储结构总览南大通用GBase 8s数据库(gbase database)的存储结构采用层次化设计…

2026/7/22 0:48:52阅读更多 →
GBase 8s数据库物理存储单元Page与Chunk简介

GBase 8s数据库物理存储单元Page与Chunk简介

理解存储结构是掌握数据库原理的关键一步。本文系统介绍南大通用GBase 8s数据库(gbase database)从物理存储单元到逻辑存储单元的层次关系,并与 Oracle 存储结构进行对照。二、物理存储单元:Page 与 Chunk2.1 数据页(P…

2026/7/22 5:09:28阅读更多 →
鸿蒙 PC Markdown 编辑器 1.0 候选阶段工程规划

鸿蒙 PC Markdown 编辑器 1.0 候选阶段工程规划

鸿蒙 PC Markdown 编辑器 1.0 候选阶段工程规划 仓库地址:https://gitcode.com/VON-/codex_md_oh 计划提交:75d4060。进入基线:G3 分享缓存收口与设备测试记录 49241e2。 为什么没有真机仍然可以继续工程开发 OhMarkdown 的目标是鸿蒙 PC…

2026/7/22 11:31:51阅读更多 →
Fast-WAM 方法原理详解:把“想象未来”留在训练中

Fast-WAM 方法原理详解:把“想象未来”留在训练中

Fast-WAM 要解决的不是“怎样更快地生成未来视频”,而是一个更根本的问题: World Action Model(WAM)的收益,到底主要来自训练时学习预测未来,还是来自推理时真的把未来视频生成出来? 传统 WAM 常…

2026/7/22 11:31:51阅读更多 →
大模型API代币消耗陷阱与成本优化实战指南

大模型API代币消耗陷阱与成本优化实战指南

最近在折腾大模型 API 调用时,我遇到了一个让所有开发者都头疼的问题:明明想方设法优化提示词、精简输入输出,结果在反复调试的过程中,代币消耗反而比预期高出好几倍。这就像为了省油而不断调整驾驶方式,最后却发现油表…

2026/7/22 11:31:51阅读更多 →
机器学习入门:从理论到实践的系统学习指南

机器学习入门:从理论到实践的系统学习指南

机器学习是让计算机系统通过数据自动改进性能的科学,它让计算机能够从经验中学习,而不是仅仅依赖明确的编程指令。在实际项目中,机器学习已经广泛应用于推荐系统、图像识别、自然语言处理等领域,但很多初学者在入门时容易陷入两个…

2026/7/22 11:31:51阅读更多 →
产品信息:百度地图

产品信息:百度地图

基础信息 产品全称:百度地图(Baidu Maps)别名/代号:百度地图App、百度地图开放平台核心关键词:地图、导航、LBS、实时路况、位置服务、出行、地图API、车道级导航产品定位:中国领先的数字地图和智能导航服务…

2026/7/22 11:31:51阅读更多 →
HarmonyOS应用开发实战:小事记 - 相机拍照:CameraManager 与 PhotoSession 的完整实现

HarmonyOS应用开发实战:小事记 - 相机拍照:CameraManager 与 PhotoSession 的完整实现

前言 相机拍照是移动应用的重要能力。HarmonyOS 的 ohos.multimedia.camera 提供了 CameraManager 管理相机设备,PhotoSession 配置拍照会话。本文以小事记(xiaoshiji_ohos_app) 的拍照功能扩展场景为背景,深入解析相机拍照的完整…

2026/7/22 11:29:51阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →