前端知库

computed、watch 和 watchEffect 应该如何选择?

分清派生数据与副作用,以及依赖是显式还是自动收集。

参考答案

computed 用于从已有响应式数据推导新值,并基于依赖缓存,getter 应保持纯粹。watch 显式指定监听源,适合需要新旧值或精确控制触发条件的副作用。watchEffect 自动追踪同步执行过程中读取的响应式依赖。

异步 watchEffect 只会追踪第一次 await 之前访问的依赖。网络请求等副作用需要处理失效清理,防止旧请求结果覆盖新状态。

深度监听可能遍历大量属性,应按需使用。对于计算出来就能得到的状态,优先考虑 computed。