vue计算属性和方法的区别

计算属性是 模版中使用表达式 的一个补充。

我们知道模版中可以写很多js中的方法等,如果逻辑较为复杂,在模版中使用表达式就会让模版显得太复杂,不便于阅读。

比如我们之前的代码:

<p>{{ message.split('').reverse().join('') }}</p>

计算属性写法

计算属性和data、methods、watch是一个级别的,所以它的位置也和它们一样:

<script>
export default {
    name: "app",
    // 数据
    data() {
        return {};
    },
    computed:{}
};
</script>

下面我们将文章开头的代码使用计算属性修改一下:

<p>原字符串:{{ message }}</p>
<p>反转后的字符串:{{ reverseMessage }}<p>
<script>
export default {
    name: "app",
    // 数据
    data() {
        return {
            message:"猥琐发育--别浪~~"
        };
    },
    computed:{
        reverseMessage(){
            return this.message.split('').reverse().join('')
        }
    }
};
</script>

计算属性和方法的区别

其实methods也可以实现这样的效果,只要我们将reverseMessage移动到methods中即可。

但是为什么不这么做呢?

是因为计算属性是基于它们的响应式依赖进行计算的

  • 当message发生改变,访问reverseMessage计算属性会重新计算,然后返回计算结果;
  • message不发生改变,reverseMessage计算属性会返回之前的计算结果,而不会重新计算。

而方法在每次访问的时候,都会去执行方法体里的逻辑,然后返回结果。

什么时候要用计算属性呢?

比如说要通过A来得到B,需要做大量计算,那么就需要通过计算属性来获得B。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值