Vue中computed和watch的区别

231 阅读1分钟

ccomputed是计算属性,watch是监听。

computed用来计算出一个值,看起来函数,但在调用时不需要加括号,且根据依赖(数据)自动缓存,当依赖不变时不会重新计算。

watch可以在监听数据变化后进行一些操作,可以给处理函传两个参数(newValue,oldValue),分别是变化前的数据和变化后的数据,当他以对象形式的语法出现时还有两个属性:deepimmediatedeep属性决定是否监听对象内部数据的变化,immediate属性决定在页面第一次渲染时时候进行监听。还可以用vm.$watch()/this.$watch()的语法进行使用,this.$watch()一般放在生命周期钩子上。

总结:

  • 当一个数据依赖其他数据时,用computed定义它
  • 当你需要在某些数据变化时做一些事,用watch监听这些数据