computed vs watch 即是
计算属性 vs 侦听属性
个人理解不知对错
大家都知道 v-if vs v-show 吧 其实计算属性computed 就是类似v-if 开销较小 偶尔一次 不频繁 就使用这个吧 如果是 开效过大 或者 异步请求 就使用 watch 侦听属性吧 这是我个人理解 如果有错 忽略我的文档 或者通知我 谢谢
看两个代码先
// 这里是watch 下一个是computed 对比一下 最浅显的就能看懂这两个区别
<div id="demo">{{ fullName }}</div>
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
}
}
})
这里是深入一点点的
computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}