- v-model是 value + input的语法糖
- 可以绑定v-model的有表单:input,checkbox,select,textarea,radio
- 自定义实现一个v-model:
- 父组件传入v-model
- 子组件定义model属性,接收value跟event,
- props接收value
- 事件改变emit event事件,参数是需要改变的值
自定义示例:
<course-add v-model="course"></course-add>
Vue.component('course-add', {
props: ['val'],
model: {
value: 'val',
event: 'change'
},
template: `
<div>
<input type="text" :value="val"
@change="onChange"
v-on:keydown.enter="addCourse"
ref="inp" v-focus>
</div>
`,
methods: {
onChange(e) {
this.$emit('change', e.target.value)
}
},
})