Vue基础(三)--计算属性(compute)和watch的区别?

一、计算属性
data属性和 computed 属性定义的值都可以直接绑定在表达式中,如果某些值需要通过计算才能得到,那使用计算属性就再合适不过了
name = firstName + lastName
App.vue

<template>
	<div>
		<h1>计算属性与侦听器</h1>
	</div>
</template>

<script>
export default {
	data(){
	return:{
	firstName:"张"lastName:"三"
	}
	}
}computed:{
	name(){
		return this.firstName + this.lastName;
	}
}
</script>
<template>
	<div>
		<h1>计算属性与侦听器</h1>
		<p> 单价:{{price}}</p>
		<p>
			<button @click="sub">-</button>
		数量:{{quatity}}
		<button @click="add">+</button>
		</p>
		<p> 折扣:{{discount}}</p>
		<p> 总价:{{totlalPrice}}</p>
	</div>
</template>

<script>
export default {
	data(){
	return:{
		price:99,
		quality:1,
		discount:0.5
		}
}computed:{
	totalPrice(){
		return this.price * this.quatity * this.discount;
	}
},
methods:{
	sub(){
	this.quatity++
	},
	add(){
		this.quatity--
	}
}
}
</script>

二、侦听器
侦听一个属性的变化

<template>
	<div>
		<h1>计算属性与侦听器</h1>
		<p> 单价:{{price}}</p>
		<p>
			<button @click="sub">-</button>
		数量:{{quatity}}
		<button @click="add">+</button>
		</p>
		<p> 折扣:{{discount}}</p>
		// <p> 总价:{{totlalPrice}}</p>
	</div>
</template>

<script>
export default {
	data(){
	return:{
		price:99,
		quality:1,
		discount:0.5,
		totalPrice:0
		}
}// computed:{
//	totalPrice(){
//		return this.price * this.quatity * this.discount;
//	}
//},
watch: {
	quatity(val){
	this.totalPrice = this.price * val * this.discount;
}
}
methods:{
	sub(){
	this.quatity++
	},
	add(){
		this.quatity--
	}
}
}
</script>

三、计算属性与 侦听器的对比

  • 一个值的改变,会影响多个值(或处理多件事),使用侦听器。(为了观察一个值)
  • 多个值的改变,为了得到一个结果,使用计算属性。(为了得到一个值)
  • 实际开发中,大部分问题都可以用 computed 解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值