vue学习笔记【三、计算属性与监听】

1、set、get方法实现计算属性与普通属性之间的数据双向绑定

<template>
	<div>
		<input type="text" placeholder="姓" v-model="first"/><p></p>
		<input type="text" placeholder="名" v-model="last"/>
		<p>====================================================</p>
		
		<!--单向-->
		<input type="text" placeholder="姓名" v-model="fullname1"/><br /><br />
		
		<!--双向-->
		<input type="text" placeholder="姓名" v-model="fullname2"/>
	</div>
</template>

<script>
	export default{
		name:"ComputedAndWatch",
		data(){
			return {
				first:'',
				last:''
			}
		},
		computed:{
			//计算属性与普通属性之间的单向绑定
			fullname1: {
				get(){
					return this.first+'·'+this.last
				}
			},
			
			//计算属性与普通属性之间的双向绑定
			fullname2: {
				get(){
					console.log('调用了get');
					return this.first+'·'+this.last
				},
				
				set(value){
					console.log('调用了set,值:',value);
					//更新first与last值
					let name = value.split('·');
					//console.log(name);
					this.first = name[0];
					this.last = name[1];
				}
			}
		}
	}
</script>

<style scoped>
	
</style>

2、侦听器watch,当监听属性变化时,回调函数自动调用,在函数内部进行计算。

//watch
watch:{
	//监听first
	first(value){
		console.log('first发生变化',value);
		//更新first
		this.full = value+'·'+this.last;
	},
	//监听last
	last(value){
		console.log('last发生变化',value);
		this.full = this.first+'·'+value;
	}
}

总结:

  • 能使用computed的地方尽量使用computed
  • computed计算一个新的属性,并将该属性挂载到vue实例上。watch监听已经存在并已经挂载到vue上的数据。所以watch可以监听到computed计算属性的变化。
  • computed适用于一个数据被多个数据影响的情况,watch适用于一个数据影响多个数据的情况。
  • computed具有缓存性,只有当依赖变化后,第一次访问computed属性,才计算新的值。watch是当数据发生变化就会调用执行函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值