news 2026/4/18 8:44:55

vue3中watch和watchEffect的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue3中watch和watchEffect的区别

watchwatchEffect都是 Vue 3 的侦听 API,但定位不同:watch更“精确监听某个源”,watchEffect更“自动收集依赖做副作用”。

核心区别

  • 监听对象
    • watch:你要“明确写出”监听源(ref/getter/数组等)。
    • watchEffect:不写监听源,回调里“用到什么响应式数据就监听什么”(自动依赖收集)。
  • 是否立即执行
    • watch:默认不立即执行,需{ immediate: true }才会先执行一次。
    • watchEffect:默认立即执行一次。
  • 是否能拿到新旧值
    • watch:回调参数是(newVal, oldVal),便于做差异逻辑。
    • watchEffect:没有显式(new, old)(本质是“重新跑一遍副作用”)。
  • 适用场景
    • watch:适合“某个值变化后做事”,尤其需要 new/old、需要精确控制触发条件时。
    • watchEffect:适合“依赖很多/不确定依赖哪些”的副作用同步(例如根据多个响应式值更新外部状态)。
  • 停止与清理
    • 两者都返回stop()可停止。
    • 两者都支持清理副作用:watch的第 3 个参数onInvalidatewatchEffect的参数onCleanup(用法类似,解决请求竞态/取消订阅)。

简单示例对比

watch:明确监听keyword

watch( () => keyword.value, (newK, oldK) => { // 需要 new/old 做对比 }, { immediate: true } )

watchEffect:自动收集依赖

watchEffect((onCleanup) => { // 这里读了 keyword、page,就会自动监听它们 // 适合把多个依赖驱动的副作用写在一起 })

怎么选

  • 要“明确监听谁”、要 new/old、要避免误触发 → 用watch
  • 依赖多且会变、想省去列依赖、做副作用同步 → 用watchEffect
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:57:49

【科研绘图系列】R语言绘制多种类型图形(heatmap boxplot linechart)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 其他画图 总结 系统信息 介绍 这幅图的故事从“日本儿童 RSV 肺炎”开始。RSV(呼吸道合胞病毒)是冬春时节把婴儿送进医院的头号元…

作者头像 李华
网站建设 2026/4/18 7:41:28

Podcast Bulk Downloader:让你的播客收藏管理更高效

想要一次性下载整个播客系列的所有剧集?Podcast Bulk Downloader正是你需要的解决方案!这款基于Python开发的播客批量下载工具,无论是通过图形界面还是命令行操作,都能让你轻松获取心仪播客的完整内容库。 【免费下载链接】Podcas…

作者头像 李华
网站建设 2026/4/18 7:27:37

节能商业照明:核心优势、关键要素及光学性能分析

现代商业空间里,照明不只是提供基础亮度的工具,更是塑造环境氛围的事物,是突出商品价值的事物,是影响消费者心理体验的关键因素。全球节能减排政策深入推进,LED技术持续成熟,节能商业照明成了市场主流&…

作者头像 李华
网站建设 2026/4/18 7:34:07

AI 时代开发者体验(DX)指南:别再让你的团队为环境配置吵架了。

AI 写完代码,然后呢?这套云原生开发工作流,让我3分钟搞定部署我是一名产品经理,最近迷上了用 AI 写代码。看着一个个想法在 AI 的帮助下变成真实的代码文件,那种创造的快感无与伦比。但兴奋劲一过,一个巨大…

作者头像 李华
网站建设 2026/4/18 3:50:04

重构智慧书-第15条:广纳智士

一、原文呈现 广纳智士 强者周围多有谋臣策士,使之诸事顺畅:一旦强者由于自己的无知而陷人僵局时,自有这些谋士帮忙使之化险为夷,并代为之辛劳鏖战。善于使用智者,实在是一种罕见的大德。这比提格拉涅斯的野蛮趣味强多了: 他总想使被征服的他国君主成为他的奴仆,在…

作者头像 李华