vue组件中的v-model
时间: 2023-10-19 16:26:10 浏览: 49
v-model是Vue.js中的一个指令,它用于在组件中实现双向数据绑定。当使用v-model指令时,它会自动将组件的数据属性与表单元素的值进行绑定,实现数据的双向同步。
在自定义组件中使用v-model指令需要在组件中声明一个名为value的prop,并且在组件内部使用$emit方法触发一个名为input的自定义事件,将新的值传递给父组件。
下面是一个使用v-model的示例:
```vue
<template>
<div>
<input type="text" :value="value" @input="updateValue($event.target.value)">
</div>
</template>
<script>
export default {
props: ['value'],
methods: {
updateValue(newValue) {
this.$emit('input', newValue);
}
}
}
</script>
```
在父组件中,可以像使用原生的`v-model`一样来使用自定义组件:
```vue
<template>
<div>
<custom-input v-model="message"></custom-input>
<p>Value: {{ message }}</p>
</div>
</template>
<script>
import CustomInput from './CustomInput.vue';
export default {
components: {
'custom-input': CustomInput
},
data() {
return {
message: ''
};
}
}
</script>
```
这样,当用户在`<input>`中输入文字时,`message`的值会自动更新,并且当`message`的值改变时,输入框的值也会自动更新。这就是v-model指令在Vue.js中实现双向数据绑定的方式。