如何使用watchEffect自动追踪依赖?Vue3异步副作用处理指南

冬婷姑娘_6301

冬婷姑娘_6301

2026-05-06

488人浏览

原创

watcheffect自动追踪函数内读取的响应式数据并立即执行,依赖变化时重新运行,适用于ui更新、日志、请求等轻量场景;支持oninvalidate清理异步副作用,不提供新旧值对比,区别于需显式声明依赖的watch。

如何使用watcheffect自动追踪依赖?vue3异步副作用处理指南

watchEffect 会自动追踪它内部读取的响应式数据,无需手动列依赖,初始化时立即执行,后续只要所用到的响应式值变化,就重新运行。它适合“值一变就做事”的轻量场景,比如更新 UI、发请求、打日志。

自动收集依赖,用到才监听

它只监听函数体中实际访问过的响应式变量。比如:

  • 写了 count.value 和 name.value,就只追踪这两个 ref
  • 用了 if (show) { state.msg },只有 show 为 true 时,state.msg 才被纳入依赖
  • 没读取的响应式属性,哪怕在同一对象里,也不会触发重运行

处理异步请求要防竞态

watchEffect 不等待 Promise 结束,多次触发可能并发执行,旧响应覆盖新结果。稳妥做法是:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.2万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习