当前位置:首页 > VUE

vue表单实现双向绑定

2026-02-22 09:35:46VUE

Vue 表单实现双向绑定

Vue 提供了 v-model 指令来实现表单元素的双向数据绑定。以下是常见表单元素的双向绑定实现方法:

文本输入框

<input type="text" v-model="message">
<p>{{ message }}</p>
data() {
  return {
    message: ''
  }
}

多行文本

<textarea v-model="message"></textarea>
<p>{{ message }}</p>

复选框

单个复选框绑定到布尔值:

<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>

多个复选框绑定到数组:

<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<input type="checkbox" id="john" value="John" v-model="checkedNames">
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<p>{{ checkedNames }}</p>
data() {
  return {
    checkedNames: []
  }
}

单选按钮

<input type="radio" id="one" value="One" v-model="picked">
<input type="radio" id="two" value="Two" v-model="picked">
<p>{{ picked }}</p>

选择框

单选:

vue表单实现双向绑定

<select v-model="selected">
  <option disabled value="">请选择</option>
  <option>A</option>
  <option>B</option>
  <option>C</option>
</select>
<p>{{ selected }}</p>

多选(绑定到数组):

<select v-model="selected" multiple>
  <option>A</option>
  <option>B</option>
  <option>C</option>
</select>
<p>{{ selected }}</p>

修饰符

.lazy - 将 input 事件转为 change 事件:

<input v-model.lazy="msg">

.number - 自动将输入值转为数字:

vue表单实现双向绑定

<input v-model.number="age" type="number">

.trim - 自动去除用户输入的首尾空白:

<input v-model.trim="msg">

自定义组件实现 v-model

在自定义组件中实现双向绑定:

<custom-input v-model="searchText"></custom-input>
// 子组件
props: ['modelValue'],
emits: ['update:modelValue'],
template: `
  <input
    :value="modelValue"
    @input="$emit('update:modelValue', $event.target.value)"
  >
`

对于 Vue 3,可以使用 v-model 的参数:

<custom-input v-model:title="bookTitle"></custom-input>
// 子组件
props: ['title'],
emits: ['update:title']

这些方法覆盖了 Vue 中实现表单双向绑定的主要场景和技巧。

标签: 表单绑定
分享给朋友:

相关文章

react如何提交表单

react如何提交表单

表单提交的基本方法 在React中提交表单通常通过控制组件状态和事件处理实现。表单数据通过onSubmit事件捕获,并阻止默认提交行为以避免页面刷新。 import { useState } fro…

vue实现动态表单

vue实现动态表单

Vue 动态表单实现方法 使用 v-for 动态渲染表单字段 通过遍历数组动态生成表单项,数据驱动视图变化。表单字段配置可存储在数组中,修改数组即可实现表单动态更新。 <template>…

vue实现切换表单

vue实现切换表单

Vue 实现表单切换的方法 动态组件切换 使用 Vue 的 <component :is="currentComponent"> 动态加载不同表单组件,通过 v-model 绑定数据。…

vue如何实现绑定

vue如何实现绑定

数据绑定基础 Vue 通过 v-bind 指令实现动态绑定 HTML 属性或组件 prop。基本语法为 v-bind:属性名="表达式",简写为 :属性名="表达式"。例如绑定 class 或 sty…

Vue数据绑定实现

Vue数据绑定实现

Vue 数据绑定的核心机制 Vue 的数据绑定基于响应式系统,通过 Object.defineProperty 或 Proxy 实现。当数据变化时,视图自动更新。 双向绑定的实现方式 v-model…

vue实现表单分组

vue实现表单分组

Vue 表单分组实现方法 使用 <fieldset> 和 <legend> 标签 HTML 原生提供 <fieldset> 和 <legend> 标签实…