计算属性:
html:
<div>{{result}}</div>
js:
computed:{
result() {
return this.a + ' ' + this.b
}
}
计算属性是有缓存机制的,如果a和b已计算过一次,那么当a和b的值不再发生改变,则不会再计算,可减少页面调用次数
方法
html:
<div>{{result()}}</div>
js:
methods: {
result() {
return this.a + ' ' + this.b
}
}
无缓存机制,只要页面数据被重新渲染,该方法就会被执行
侦听器
html:
<div>{{result}}</div>
js:
watch: {
a() {
this.result = this.a + ' ' + this.b
},
b() {
this.result = this.a + ' ' + this.b
}
}
与computed方法相似,也存在缓存,a和b的值不发生变化,则不会再次被调用。
虽然与computed方法机制类似,但是watch方法写的代码没有computed方法简洁。
PS:一般来说,如果一个功能用以上三种方法都可以实现,推荐大家使用computed方法实现