computed 的get 和set

当你读取一个变量的时候会触发该变量的getter.
当你修改该变量时候会触发他的setter.

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>

<body>
    <div id="div"> 
        <input v-model="changeFirstNameFn">
        <input v-model="changeSecondNameFn">
    <br />
    全名:<input id="full" v-model="fullName">
</div>

<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script> 
var a=new Vue({
el:"#div",               
data:{ 
	firstName:"",
	lastName:"",
	fullName:""
}, 
computed:{
	changeFirstNameFn:{
		get:function(){      // get 函数,返回绑定的“姓” 的输入框的value 值
			return this.firstName
		},
		set:function(newVal){ //set函数是当数据发生变化时调用.监听到 “姓”的变化,执行set 函数
			this.firstName=newVal
			this.fullName=newVal+" "+ this.lastName
		}
	},	
	changeSecondNameFn:{
		get:function(){
			return this.lastName},
		set:function(newVal){   //set 函数是当数据发生变化时调用
			this.lastName=newVal
			this.fullName=this.firstName+" "+newVal
			}
		}
	}
})

</script>
</html>

网页效果:(以 “姓” 这个输入框为例)

1. <input > 用 v-model 双向绑定 "changeFirstNameFn" :<input v-model="changeFirstNameFn">

2. get 函数:这里 设置了返回 this.firstName。

1) this.firstName 初始值为 data 设置的默认值;

2) 当 “姓” 这个输入框获取新的值后,由于 set 函数设置了,this.firstName=newVal ,也就是 firstName 会被赋值为输入框的内容(例如:输入“郑”,这个“郑” 就是新输入值 newVal。所以 get函数设置后,return this.firstName 返回 “郑”)

changeFirstNameFn:{              
		get:function(){         // get 函数,返回绑定的“姓” 的输入框的value 值
			return this.firstName
		},

3. set 函数 :

1) 当 “姓” 这个输入框获取新的值后,由于 set 函数设置了,this.firstName=newVal ,也就是 firstName 会被赋值为输入框的内容(例如:输入“郑”,这个“郑” 就是新输入值 newVal )

2) “名” 输入框同上。

3) 全名:<input id="full" v-model="fullName"> “全名” 输入框通过 v-model 动态绑定 fullName ,

响应两个 set 函数中 this.fullName=newVal+" "+ this.lastName  和 this.fullName=this.firstName+" "+newVal (通过响应 “姓” 和 “名” 的变化,改变“全名”这个输入框的内容)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值