ccomputed是计算属性,watch是监听。
computed用来计算出一个值,看起来函数,但在调用时不需要加括号,且根据依赖(数据)自动缓存,当依赖不变时不会重新计算。
watch可以在监听数据变化后进行一些操作,可以给处理函传两个参数(newValue,oldValue),分别是变化前的数据和变化后的数据,当他以对象形式的语法出现时还有两个属性:deep和immediate,deep属性决定是否监听对象内部数据的变化,immediate属性决定在页面第一次渲染时时候进行监听。还可以用vm.$watch()/this.$watch()的语法进行使用,this.$watch()一般放在生命周期钩子上。
总结:
- 当一个数据依赖其他数据时,用
computed定义它 - 当你需要在某些数据变化时做一些事,用
watch监听这些数据