Vue正式篇(一)番外 v-model和:model的区别?

v-model和:model的区别?
v-model通常用于input的双向数据绑定<input v-model="parentMsg">,也可以实现子组件到父组件数据的双向数据绑定。
父组件:

<div>
	<input type="text" v-model="msg">
	<child v-model='msg'></child>
</div>

子组件:

Vue.component('child', {
	props: ['value'],
	template: '<input type="text" @input="handleInput" :value=value />',
	methods: {
		handleInput(e) {
			console.log(e)
			this.$emit('input', e.target.value)
		}
	}
})
new Vue({
	el: '#example',
	data: {
		msg: '好天气',
		parentMsg: ''
	}
})

无论改变父组件还是子组件的输入框,value和msg的值都会改变,两个输入框的值也就同时改变了。

:model是v-bind:model的缩写,<child :model="msg"></child>这种只是将父组件的数据传递到子组件,并没有实现子组件和父组件的双向绑定,当然引用类型除外,子组件改变引用类型的数据的话,父组件也会改变的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值