vue.js v-model 与 v-bind的区别

可以简单地这么理解:

v-model 为 双向数据绑定; v-bind为单向数据绑定。

先来看一个例子:

<!DOCTYPE>
<html>
<head>
<title>v-model与v-bind</title>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
	<div>
		<input v-model="message1">
		<button @click = "submitChange1">更改message的值</button>
		<div>input的内容为:{{message1}}</div>
	</div>
	<br>
	<div>
		<input :value = "message2">
		<button @click = "submitChange2">更改message的值</button>
		<div>input的内容为:{{message2}}</div>
	</div>
</div>
<script>
var app = new Vue({
	el: "#app",
	data: {
		message1: '我是1号',
		message2: '我是2号'
	},
	methods: {
		submitChange1() {
			this.message1 = '我是1号(修改)'
		},
		submitChange2() {
			this.message2 = '我是2号(修改)'
		}
	}
})
</script>
</body>
</html>

首先更改输入值,可以看到,v-model绑定的值修改了message值,但v-bind绑定的值却没有修改message值。

接下来点击改变messge的值按钮,发现两个输入框中的内容均发生了改变:

因此,在与用户交互的元素一般使用v-model,如表单元素,这样能够得到用户的操作值,在一般的无交互的元素中使用v-bind进行数据绑定(在父子组件传递数据时也会采用v-bind绑定)。

至于vue.js中v-model与v-bind的实现原理,有待学习补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值