vue与自定义组件之间如何v-model
时间: 2023-05-21 16:04:16 浏览: 150
可以使用 props 和 $emit 实现自定义组件的 v-model。
首先,在自定义组件中声明一个 props,用于接收父组件传递过来的 value 值,同时在组件中定义一个名为 input 的事件,在该事件中使用 $emit 向父组件传递更新后的 value 值。具体代码如下:
// 子组件中
<template>
<div>
<input :value="value" @input="$emit('input', $event.target.value)">
</div>
</template>
<script>
export default {
props: ['value']
}
</script>
然后,在父组件中使用自定义组件时,可以将需要双向绑定的数据通过 v-model 传递给自定义组件。具体代码如下:
// 父组件中
<template>
<div>
<my-custom-component v-model="message"></my-custom-component>
</div>
</template>
<script>
import MyCustomComponent from './MyCustomComponent'
export default {
data() {
return {
message: 'hello world'
}
},
components: {
MyCustomComponent
}
}
</script>
这样,当在子组件中修改输入框的值时,会触发 input 事件,从而更新父组件中的 message 值,并且在父组件中修改 message 值也会通过 props 传递到子组件中更新输入框的值。
阅读全文