v-model 使用
Jioho 7/5/2020 Vue
# v-model 介绍
官方说明:v-model (opens new window)
v-model
的出现少去了我们手动赋值的一步
常用:
- input
- textarea
- component
# 组件内自定义 v-model
步骤:要使自定义组件也支持 v-model
- 先定义一个组件,接收一个参数。组件内需要加上
model
属性。页面点击后,触发model 绑定的方法
,修改对应 porp 的值。这时候父页面也会同步更新
直接看个 demo
父组件
<template>
<div>
<child v-model="showModel"></child>
</div>
</template>
<script>
export default {
data() {
return {
showModel: false
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
子组件
<template>
<div :class="['mask',show?'show':'']" @click.stop="$emit('bindClose',false)">
这里是蒙版层的内容
</div>
</template>
<script>
export default {
name: 'Childred',
props: {
// 是否显示蒙版层
show: {
type: Boolean,
default: false
}
},
/**
* v-model绑定对应的方法,和修改的方法
*/
model: {
prop: 'show',
event: 'bindClose'
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
定义 model
后,shou
参数就会被自动绑定到 v-model 中。如果要修改 v-model 的值,需要触发对应 model
中的 event
。要使用 $emit
去触发。