语法糖: 对一个更加复杂的操作的封装,讨好vue程序员的。
众所周知Vue中,v-model可以实现双向绑定,其中的原理解析其实就是v-model的语法糖!
// 1. v-model 在表单元素上使用
<input v-model="xxx" />
// 2. v-model 在自己定义的组件上使用
<MyCom v-model="xxx" />
上面的写法是快捷方式,它等价于如下复杂的写法:
<MyCom :value="xxx" @input="新值=>xxx=新值" />
// v-model做两件事:
// 1. 向子组件传来一个名为value的属性
// 2. 在子组件监听input事件,这个事件的回调中修改value所绑定的值
通过以上示例代码可知,:value 向子组件传递名为value的属性,子组件通过props进行接收
@input 子组件监听input 事件,这个事件的回调中修改value所绑定的值
这就是 v-model 的本质所做的事情
为啥要在自己的组件上用v-model?
v-model写法比较简单,一个指令实现两个功能:子传父(input事件),父传子(value属性)。
(使用与否取决于自己)