watcheffect自动追踪执行时读取的响应式数据,无需依赖数组;条件分支、浅层响应式、异步读取影响依赖收集;支持flush控制执行时机;需用oninvalidate清理异步副作用;返回stop()函数用于手动停止监听。

直接在回调函数里读取响应式数据,Vue 就会自动盯住它们——不需要写依赖数组,也不用声明监听谁。
自动收集依赖的关键规则
watchEffect 不靠你列清单,而是靠“执行时读了什么”来判断该监听谁:
- 函数里实际访问了 count.value 和 user.profile.city,就只追踪这两个;没读到的字段,哪怕在同一对象里,也不会响应变化
- 条件分支会影响依赖:比如 if (show) { state.msg },只有 show 为真时,state.msg 才被纳入依赖
- 对 reactive 对象是浅层追踪:修改 user.profile.age 能触发,但直接替换整个 user 对象才真正更新依赖链
- 异步代码里读取的值不会被追踪:例如 await fetch(); console.log(data.value) 中的 data.value 不在初始 track 阶段,后续变化不会触发重跑
立即执行与副作用控制
它默认一创建就运行,适合初始化同步逻辑,但要注意执行时机:
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
