1、Vue v-model
简介
v-model
是 Vue 提供的语法糖,用于实现表单元素与数据的双向绑定,简化了手动绑定 value
和监听 input
事件的过程。
<!-- 等价写法 -->
<input :value="message" @input="message = $event.target.value">
2、工作原理
v-model
的底层实现包含两个关键机制。
1)属性绑定(v-bind:value
)
将数据模型中的值绑定到表单元素的 value
属性,确保页面中显示的值始终与数据一致。
2)事件监听(@input
)
自动监听表单元素的输入事件(如 input
、change
等),当用户修改输入框内容时,Vue 会将新值同步回数据模型中,实现双向更新。
3、局限性
默认只能绑定名为 value
的属性。对于自定义组件,如需绑定其他 prop(例如 checked
、selected
等),需配合 model
选项或在 Vue 3 中使用 emits
和 props
配置。
4、使用示例
<template>
<input v-model="username" />
</template>
<script>
export default {
data() {
return {
username: ''
}
}
}
</script>
实际上相当于:
<input :value="username" @input="username = $event.target.value" />