1、 v-model可以使用到自定义组件上,如果可以?怎么使用?
时间: 2024-05-10 21:16:18 浏览: 56
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
是的,v-model可以用于自定义组件上。要实现这个功能,你需要在自定义组件中添加一个名为“model”的prop,同时在组件中使用$emit方法触发一个名为“update:modelValue”的事件来更新v-model绑定的值。
以下是一个自定义组件的示例代码,其中使用了v-model绑定:
```html
<template>
<div>
<input type="text" :value="value" @input="updateValue($event.target.value)">
</div>
</template>
<script>
export default {
props: {
value: {
type: String,
default: ''
},
model: {
type: String,
default: 'value'
}
},
methods: {
updateValue(value) {
this.$emit('update:' + this.model, value)
}
}
}
</script>
```
在父组件中使用该自定义组件时,可以像下面这样使用v-model绑定:
```html
<template>
<div>
<custom-input v-model="message"></custom-input>
</div>
</template>
<script>
import CustomInput from './CustomInput.vue'
export default {
components: {
CustomInput
},
data() {
return {
message: ''
}
}
}
</script>
```
这里的“message”变量实际上是通过v-model绑定到CustomInput组件中的“value”prop上。当CustomInput组件中的输入框内容发生变化时,它会触发“update:value”事件,从而更新父组件中的“message”变量。
阅读全文