Vue computed 和 watch 区别

133 阅读1分钟

Vue computed 和 watch 区别

题目

Vue computed 和 watch 区别

两者设计用途不同

  • computed 用于产出二次处理之后的数据,如对于一个列表进行 filter 处理
  • watch 用于监听数据变化(如 v-model 时,数据可能被动改变,需要监听才能拿到)

computed 有缓存

  • computed 有缓存,data 不变则缓存不失效
  • methods 无缓存,实时计算
  • computed不支持异步,当computed内有异步操作时无效,无法监听数据的变化;而watch支持异步。
  1. computed属性的结果是会被缓存的,并且依赖响应式数据的变化才会发生改变
  2. 定义的函数接收return的结果,return属于同步执行的,是没办法拿到异步请求结果的

答案

  • computed 就已有数据产出新数据,有缓存
  • watch 监听已有数据