v-model is a two-way binding for form inputs. It combines v-bind, which brings a js value into the markup, and v-on:input to update the js value.
Consider:
<input v-model="something">
and it's just syntactic sugar for:
<input
v-bind:value="something"
v-on:input="something = $event.target.value"
>
v-model works with all the basic HTML input types (text, textarea, number, radio, checkbox, select). You can use v-model with input type=date if your model stores dates as ISO strings (yyyy-mm-dd).