<div>
<input
@input="updateValue($event.target.value)"
@change="updateValueChange($event.target.value)"
:value="value"
/>
/>
props: ['value']
methods: {
updateValue(value) {
this.$emit('input', value)
},
updateValueChange(value) {
this.$emit('change', value)
},
}
Внутренне v-model использует разные свойства и генерирует разные события для различных элементов ввода:
элементы для ввода текста и многострочного текста используют свойство value и событие input;
чекбоксы и радиокнопки используют свойство checked и событие change;
выпадающие списки используют свойство value и событие change.