v-model
是 Vue 实现数据双向绑定最好的一个指令,但是 v-model
本质上不过是语法糖。
示例:
1 | <div> |
1 | new Vue({ |
v-model
的真正实现如下:
1 | <input type="text" |
:value="msg"
使用v-bind
将 msg 绑定到 input 的 value 值上,这是单向绑定,msg 可以改变 input 的 value,但是 input 的 value 值不可以改变 msg- 使用
v-on
监听 input 事件,输入内容时单向改变 msg 的值。
自定义组件的 v-model
自定义组件 CustomVModel.vue :
1 | <template> |
使用自定义组件的父组件:
1 | <div> |
因为 CustomVModel 组件中重定义了v-model的属性,因此 <CustomVModel v-model="msg"/>
的本质是 <CustomVModel :text1="msg" @change1="handleChange1" />
,handleChange1 函数如下:
1 | handleChange1(val) { |