watch 和 computed 区别是什么?
coumputed
是计算属性,watch
是侦听属性computed
和watch
相比,最大区别是computed
有缓存:如果computed
属性依赖的属性没有变化,那么computed
属性就不会重新计算。watch
则是看到一次计算一次。watch
和computed
相比,computed
是计算出一个属性,而watch
则可能是做别的事情(如上报数据)
data: {
firstName: 'David',
lastName: 'Beckham'
},
computed: {
fullName: function() { //方法的返回值作为属性值
return this.firstName + ' ' + this.lastName
}
}
watch: {
// 监听 data 中的 firstName,如果发生了变化,就把变化的值给 data 中的 fullName, val 就是 firstName 的最新值
firstName: function(val) {
this.fullName = val + ' ' + this.lastName
}
}