Да, вы должны передать value
реквизиты вашему компоненту, а затем emit
input
для изменения value
Например: у нас есть компонент ввода:
<template>
<input :value="innerValue" @input="change($event.target.value)">
</template>
<script>
export default {
name: "TextField",
props: ["value"],
computed: {
innerValue() {
return this.value;
}
},
methods: {
change(e) {
console.log(e);
this.$emit("input", e);
}
}
};
</script>
, и мы используем его в родительском компоненте компонент:
<template>
<div id="app">
<text-field v-model="value"/>
</div>
</template>
<script>
import TextField from "./components/TextField";
export default {
name: "App",
components: {
TextField
},
data: () => ({
value: ""
})
};
</script>