在Vue.js文档中,有一个类似下面的示例:
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
},
watch: {
firstName: function (val) {
this.fullName = val + ' ' + this.lastName
},
lastName: function (val) {
this.fullName = this.firstName + ' ' + val
}
}
})
上面的代码是命令性的和重复的。将其与计算的属性版本进行比较:
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})
观察者比计算属性更合适的情况是什么?我应该如何决定选择哪个?文档不断说它是“通用的”,但并没有真正说明其目的。
看
当您要执行异步或昂贵的操作以响应更改的数据时,请使用watch。
计算的
在其他情况下使用计算得出。根据它们的依赖性缓存计算的属性。通常在只想重新评估其某些依赖项已更改时使用。