文章目录
Vue 中 computed
和 watch
的核心区别在于 设计目的 和 实现机制。computed
用于声明式地派生依赖数据的计算结果(缓存结果,高效响应),而 watch
用于观察数据变化并执行副作用操作(监听回调,灵活处理异步或复杂逻辑)。
一、核心区别对比
特性 | computed | watch |
---|---|---|
设计目的 | 派生新数据(依赖其他值计算得出) | 监听数据变化并执行副作用(如异步操作) |
缓存机制 | 有缓存(依赖未变化时复用结果) | 无缓存(每次变化触发回调) |
异步支持 | 不支持(必须同步返回结果) | 支持(回调中可包含异步操作) |
触发时机 | 依赖变化时自动计算 | 监听的数据变化时触发 |
代码风格 | 声明式(关注“计算结果”) | 命令式(关注“变化后的操作”) |