vue的v-model指令的基本原理,以及如何在自定义组件上使用v-model绑定值

1.v-model的用法

v-model的用法都知道,表单控件使用v-model绑定一个data中的值即可实现双向绑定:

<input type="text" v-model="val" />

data(){
	return {
		val: 0
	}
}

2.v-model是什么

它其实就是一个语法糖,这个在vue官网也明确说明了。

为例,它其实就是:value(v-bind:value)和@input(v-on:input)的简写。以下两个组件的双向绑定功能是一样的:

	<input v-model="value" />
	<input v-on:input="value = $event.target.value" v-bind:value="value" />
	
	<script>
		...
		data(){
			return {
				value: ''
			}
		}
	script>

只不过下面那个input控件是在input事件中将当前input元素绑定的value赋给了data中value这个变量;

3.不同的表单它是怎么知道绑的是什么类型的值的?

表单有各种不同的类型,如