watch跟computed的区别

文章讲述了Vue中watch和computed的区别,包括数据监听、计算机制、异步特性,并给出了使用场景建议。
摘要由CSDN通过智能技术生成

相信有部分人在使用watch和computed时往往分不清该用哪一个。以下介绍两者的区别

在Vue中,watch和computed都是用来监听数据变化的工具,但是它们有一些明显的区别。

watch用于监听特定数据的变化,并执行相应的回调函数。
当监听的数据发生变化时,回调函数会被调用。watch可以用来监听任何一个数据,包括基本数据类型、对象、数组等。

computed是计算属性,它是根据相关数据的变化而自动计算出来的。
computed是基于其相关依赖进行缓存的,只有依赖的数据发生变化时,才会重新计算。因此,computed适用于根据已有数据衍生出来的数据,用来减少计算量和提高性能。
computed中的函数必须要用return返回

只要依赖的数据发生变化,watch会立即执行回调函数,而computed会缓存计算结果,只有在依赖的数据变化时,才会重新计算。

watch可以处理异步操作,因为在回调函数中可以进行异步操作;而computed是同步的,不支持异步操作。

那么该怎么权衡使用watch还是computer呢?
有个好用的方法:
当一个属性受多个属性影响的时候,使用computed
当一条数据影响多条数据的时候,使用watch

例如:
购物车的总金额,受多个商品价格的影响,则用computed

computed:{
	totalPrice(){
		return this.price1 + this.price2 + this.price3
	}
}

当需要监听输入框中输入的数据进行验证或其他操作

watch:{
	inputData(value){
		this.verification(value) //验证函数
		this.xxxxx // 操作1
		this.xxxxx// 操作2
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值