Skip to main content

watch 和 computed 区别是什么?

  • coumputed是计算属性,watch是侦听属性
  • computedwatch 相比,最大区别是 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
}
}