Vue使用computed实现计算属性的单向绑定和双向绑定

文章展示了如何在Vue.js应用中使用v-model和computedproperties实现姓名的全称与分段姓名之间的双向绑定。当输入全名时,姓和名会自动更新;修改姓或名时,全名也会相应改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图:

在这里插入图片描述
目的:修改姓名时,修改全名,修改全名时也会修改姓名信息

1、在页面添加四个input,分别保存姓、名、姓名全称1、姓名全称2

<div id="app">
      姓: <input placeholder="First Name" v-model="firstName" /><br />
      名: <input placeholder="Last Name" v-model="lastName" /><br />
      姓名1(单向): <input placeholder="Full Name1" v-model="fullName1" /><br />
      姓名2(双向): <input placeholder="Full Name2" v-model="fullName2" /><br />
  </div>

2、在data中定义属性firstName、lastName

data() {
	return {
		firstName: '',
		lastName: '',
	}
},

3、在computed中计算属性fullName1 = firstName + lastName

computed: {
      fullName1() {
           console.log('计算fullName1')
           return this.firstName + ' ' + this.lastName
       },
}

4、在fullName2对应的input中修改数据时,同时修改firstName与lastName值,这里要用到get与set方法。

对value值进行切割,分别赋予firstName与lastName

computed: {
      fullName1() {
           console.log('计算fullName1')
           return this.firstName + ' ' + this.lastName
       },
}
fullName2:{
	get(){
		return this.firstName + " " + this.lastName
	}
	set(value){
		let names = value.split(" ")
		this.firstName = names[0]
		this.lastName = names[1]
	}
}

5、全部代码

<template>
	<div>
		<div>
			姓: <input type="text" v-model="firstName">
			<br/>
			名: <input type="text" v-model="lastName">
			<br/>
			全名称:{{fullName1}}
			<br/>
			<input type="text" v-model="fullName2">
		</div>
	</div>
</template>

<script>
	export default {
		data() {
			return {
				firstName: '',
				lastName: '',
			}
		},
		computed:{
			fullName1(){
				return this.firstName + " " + this.lastName
			},
			fullName2:{
				get(){
					return this.firstName + " " + this.lastName
				}
				set(value){
					let names = value.split(" ")
					this.firstName = names[0]
					this.lastName = names[1]
				}
			}
		}
	}
</script>

<style>
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值