原生表单元素的v-model实现
对于input/textarea/select等原生表单工具,v-model的编译结果
1 | <input v-model="message"> |
等价于:
1 | <input |
不同元素的差异
| 元素类型 | 绑定属性 | 监听事件 |
|---|---|---|
<input> |
value | input |
<textarea |
value | input |
select |
value | change |
checkbox |
checked | change |
radio |
checked | change |
自定义组件的v-model实现
vue2实现
1 | <MyCompont v-model="value"> |
等价于
1 | <MyComponent |
vue3实现
1 | <MyComponent |
自定义v-model
- 修改默认属性/事件名称(vue2)
1
2
3
4
5
6
7
8//子组件
export default {
model: {
prop: "title",
event: "title-change"
},
props: ["title"]
} - 多
v-model绑定(vue3)等价于1
2
3
4<MyComponent
v-model:title="title"
v-model:content="content"
>1
2
3
4
5<MyComponent
:title="title"
@update:title="title = $evet"
:content="content"
@update:content="content = $event"