如何将子元素v模型公开为vue组件v模型

时间:2018-11-09 14:35:40

标签: vue.js v-model

我在vue组件中使用了一个简单的文本区域。

<input v-model="someRootProperty"/>

例如,我想将此输入封装在另一个组件中

<template>
    <div>
        <div>...</div>
        <input v-model="???"/>
    </div>
</template>

我想使用

<my-component v-model="someRootProperty" />

相反,他们将其绕过了组件内部的输入。

我应该在组件内部做什么以将其输入v模型公开为组件v模型?

1 个答案:

答案 0 :(得分:2)

<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']
}

然后像这样使用它。

<my component v-model="someRootProperty"/>