效果预览
model 选项的语法
- 每个组件上只能有一个 v-model。
- v-model 默认会占用名为 value 的 prop 和名为 input 的事件,即 model 选项的默认值为
model: {
prop: "value",
event: "input",
},
- 通过修改 model 选项,即可自定义v-model 的 prop 和 event
演示代码
父组件 father.vue
<template>
<div style="margin: 30px">
<p style="margin: 30px">{{ msg }}</p>
<Child v-model="msg" />
</div>
</template>
<script>
import Child from "./child.vue";
export default {
components: {
Child,
},
data() {
return {
msg: "你好",
};
},
};
</script>
子组件 child.vue
<template>
<div>
<input type="text" @input="chang_parentMsg" :value="parentMsg" />
</div>
</template>
<script>
export default {
model: {
prop: "parentMsg",
event: "chang_parentMsg",
},
props: {
parentMsg: String,
},
methods: {
chang_parentMsg(e) {
this.$emit("chang_parentMsg", e.target.value);
},
},
};
</script>