发布于2026-07-23 阅读(0)
扫一扫,手机访问
watchEffect 是 Vue3 组合式 API 提供的一个响应式侦听器,专门用来监听响应式数据的变化,并执行相应的副作用逻辑。它的核心定义很干脆:立即执行一次副作用函数,自动追踪函数内部访问到的所有响应式数据,当这些依赖发生变化时,重新执行该函数——整个过程不需要手动指定监听源。
简单来说,它就是 watch 的“简化版”,专注于“副作用响应”这件事,把 watch 需要手动指定依赖的繁琐操作省掉了。用起来更直接,也更省心。
它的底层基于 Vue3 响应式系统的 ReactiveEffect 实现,流程非常清晰:
immediate。onInvalidate 清理副作用,比如移除事件监听、取消请求等。(注意:原文此处“自动停止:在”后内容不完整,但为依据原文保留原样。)
| 对比维度 | watchEffect | watch |
|---|---|---|
| 依赖收集 | 自动收集函数内依赖 | 需手动指定监听源 |
| 触发时机 | 默认立即执行 | 默认惰性执行(需immediate开启) |
| 旧值获取 | 不支持 | 支持(newVal, oldVal) |
| 适用场景 | 动态依赖、简单副作用 | 旧值对比、节流防抖、异步请求 |
onInvalidate 进行清理。watchEffect 的核心价值就是“简化响应式侦听”——不需要手动指定依赖,特别适合动态依赖和简单副作用的场景,比如 DOM 操作、页面标题修改、临时调试等。记住三个关键点:
onInvalidate 清理副作用,避免内存泄漏。它和 watch 是互补关系:简单副作用用 watchEffect,需要旧值对比、异步节流时用 watch。两相结合,才能高效驾驭 Vue3 的响应式侦听机制。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8