vue2までは下記が組み合わさってv-modelとして活用していたと思います。
<template>
<input type="text" v-model="sample" />
<!-- 上と同じ動作をします -->
<input type="text" :value="sample" @input="sample = $event">
</template>
vue3からは結構変わります。
<template>
<input type="text" v-model="sample />
<!-- 上と同じ動作をします -->
<input type="text :modelValue="sample @update:modelValue="sample = $event />
</template>
vue2系まではvalue
とinput
の糖衣構文だったものが、modelValue
と@update:modelValue
に変わったところです。