上一篇
🔍 Vue3 | 响应式:watchEffect vs watch 区别解析
核心机制
watchEffect
:自动追踪依赖,立即执行回调函数,依赖变化时重新运行。🎯 无脑监听,适合副作用逻辑(如DOM操作、异步请求)。 watch
:需显式指定监听的数据源,变化时触发回调。🕵️ 精准监听,适合需要新旧值对比的场景。 依赖收集
watchEffect
:自动收集回调内的响应式依赖(类似computed
)。 watch
:需手动传入监听目标(如() => state.value
或[ref1, ref2]
)。 执行时机
watchEffect
:默认同步执行(可通过flush: 'post'
延迟到DOM更新后)。 watch
:默认惰性(首次不执行,除非设immediate: true
)。 新旧值获取
watchEffect
:❌ 无法直接获取旧值,需自行缓存(如let prev = ref()
)。 watch
:✅ 回调参数为(newVal, oldVal)
,方便对比。 停止监听
const stop = watchEffect(() => { ... }); stop(); // 🛑 停止监听
性能优化
watchEffect
:依赖变化频繁时可能重复执行,需注意副作用清理(如onInvalidate
)。 watch
:可搭配deep
或throttle
控制监听粒度。 💡 :
watchEffect
当你是懒人🤖,想自动追踪依赖。 watch
当你是侦探🕵️,需精确控制监听目标与时机。本文由 岳觅翠 于2025-08-02发表在【云服务器提供商】,文中图片由(岳觅翠)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/518586.html
发表评论