如何将子元素v-model暴露为vue组件v-model
How expose child element v-model as the vue component v-model
我在我的 vue 组件中使用了一个简单的文本区域。:
<input v-model="someRootProperty"/>
我想将此输入封装在另一个组件中,例如
<template>
<div>
<div>...</div>
<input v-model="???"/>
</div>
</template>
我想使用
<my-component v-model="someRootProperty" />
相反,他们将其绕过组件内部的输入。
我应该在组件内部做什么才能将其输入 v-model 公开为组件 v-model?
<input v-model="someRootProperty"/>
与(语法糖)相同:
<input :value="someRootProperty" @input="someRootProperty = $event.target.value"/>
这意味着您可以接受 value
作为组件中的道具并发出 input
以实现相同的目的。
MyComponent.vue
<template>
<input :value="value" @input="$emit('input', $event.target.value)>
</template>
<script>
export default {
props: ['value']
}
然后像这样使用它。
<MyComponent v-model="someRootProperty"/>
我在我的 vue 组件中使用了一个简单的文本区域。:
<input v-model="someRootProperty"/>
我想将此输入封装在另一个组件中,例如
<template>
<div>
<div>...</div>
<input v-model="???"/>
</div>
</template>
我想使用
<my-component v-model="someRootProperty" />
相反,他们将其绕过组件内部的输入。
我应该在组件内部做什么才能将其输入 v-model 公开为组件 v-model?
<input v-model="someRootProperty"/>
与(语法糖)相同:
<input :value="someRootProperty" @input="someRootProperty = $event.target.value"/>
这意味着您可以接受 value
作为组件中的道具并发出 input
以实现相同的目的。
MyComponent.vue
<template>
<input :value="value" @input="$emit('input', $event.target.value)>
</template>
<script>
export default {
props: ['value']
}
然后像这样使用它。
<MyComponent v-model="someRootProperty"/>