Vue计算属性、方法、侦听器区别

计算属性:

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方法实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值