vue 计算属性和data_Vue:计算属性

本文介绍了Vue中计算属性的使用,以总价计算为例,对比了计算属性与方法的区别,并展示了如何修改计算属性的值。此外,还详细探讨了监听属性,包括监听普通属性、对象属性和对象本身,阐述了计算属性和监听属性在性能与灵活性上的差异。
摘要由CSDN通过智能技术生成

一、为什么要使用计算属性

1、什么是计算属性

计算属性:可以理解为能够在里面写一些计算逻辑的属性。具有如下的作用:

减少模板中的计算逻辑。

数据缓存。当我们的数据没有变化的时候,不会再次执行计算的过程。

依赖固定的数据类型(响应式数据),不能是普通的传入的一个全局数据。

在数据量比较大的时候,计算属性可以帮助我们提高性能,因为计算属性只会在数据变化的时候才会计算。

在讲解计算属性之前先来看下面的一个例子:

需求:外卖套餐A每份15元,客户点了3份,总价打八折,配送费5元,要求在界面显示总价,代码如下:

您购买了{ {info.name}}共{ {info.count}}份

总价:{ {info.count*info.price*info.sale+info.freight}}元

name:'Test',

data(){return{

info:{

userId:1,

price:15,

name:'套餐A',

count:3,

sale:0.8,

freight:5}

}

}

}

界面运行效果:

看了上面的例子,可能有人会问:使用这种方式已经实现了需求,那为什么还要使用计算属性呢?我们知道,vue中模板内的表达式非常便利,设计的初衷是用于简单运算的。如果在模板中放入太多的逻辑会让模板过重而且难以维护,看上面的代码:

总价:{ {info.count*info.price*info.sale+info.freight}}元

在这段代码中,模板不在是简单的声明式逻辑,而是复杂的逻辑计算,如果想要在多处引用总价的时候,就会难以维护。所以,对于任何复杂的逻辑,都应当使用计算属性。

看下面使用计算属性的例子:

计算属性

您购买了{ {info.name}}共{ {info.count}}份

总价:{ {totalPrice}}元

name:'ComputedDemo',

data(){return{

info:{

userId:1,

price:15,

name:'套餐A',

count:3,

sale:0.8,

freight:5}

}

},

computed:{//定义计算属性totalPrice

totalPrice:function(){return this.info.count*this.info.price*this.info.sale+this.info.freight

}

}

}

界面显示效果:

注意:计算属性是一个属性,不是方法,不能写在methods中,放在computed属性里面。

上面计算属性的写法也可以使用ES6的写法:

//使用ES6写法

totalPrice(){return this.info.count*this.info.price*this.info.sale+this.info.freight

}

二、计算属性和方法的区别

1、区别

上面的例子除了使用计算属性,还可以使用方法实现:

计算属性

您购买了{ {info.name}}共{ {info.count}}份

使用计算属性获取总价:{ {totalPrice}}元

使用方法获取总价:{ {getTotalPrice()}}元

name:'ComputedDemo',

data(){return{

info:{

userId:1,

price:15,

name:'套餐A',

count:3,

sale:0.8,

freight:5}

}

},

computed:{//定义计算属性totalPrice

/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值