Как заменить v-model на явную реализацию с тем же двунаправленным связыванием?

Для обычного текстового input v-model можно заменить привязкой value и обработчиком input; для компонента Vue 3 — modelValue и update:modelValue.

Короткий ответ

Что ответить на собеседовании

Для обычного текстового input v-model можно заменить привязкой value и обработчиком input; для компонента Vue 3 — modelValue и update:modelValue.

Подробный разбор

Ответ с пояснениями

Для обычного текстового input v-model можно заменить привязкой value и обработчиком input; для компонента Vue 3 — modelValue и update:modelValue.

<input :value="text" @input="text = $event.target.value">
<MyField :model-value="text" @update:model-value="text = $event" />

Это базовые варианты без модификаторов. Checkbox, radio, select, .lazy, .number и .trim имеют дополнительные правила, поэтому одинаковая замена через value/input не воспроизводит все случаи v-model. В Vue 2 контракт компонента по умолчанию иной: value/input.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее