当前位置:首页 > 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 中实现表单双向绑定的主要场景和技巧。

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

相关文章

vue 实现表单

vue 实现表单

Vue 表单实现方法 使用 Vue 实现表单可以通过多种方式,包括基础表单绑定、表单验证以及第三方库集成。以下是常见的实现方法: 基础表单绑定 Vue 提供了 v-model 指令实现表单元素的双向…

vue实现多表单

vue实现多表单

Vue 实现多表单的方法 在 Vue 中实现多表单可以通过多种方式完成,以下是一些常见的方法: 动态表单生成 使用 v-for 动态生成多个表单,结合数组或对象存储表单数据。这种方法适合表单结构相似…

vue 实现新增表单

vue 实现新增表单

使用 Vue 实现新增表单 在 Vue 中实现新增表单功能,通常需要结合表单绑定、数据管理和事件处理。以下是实现新增表单的步骤和示例代码。 表单数据绑定 使用 v-model 实现表单数据的双向绑定…

实现vue数据绑定

实现vue数据绑定

Vue数据绑定的实现方式 Vue.js通过数据劫持和发布-订阅模式实现数据绑定,核心是响应式系统。以下是主要实现方法: 双向数据绑定(v-model) <input v-model="mess…

vue如何实现表单检验

vue如何实现表单检验

Vue 表单验证的实现方法 使用内置指令 v-model 和 v-bind 通过 v-model 绑定表单元素的值,结合 v-bind 动态绑定属性,可以实现基本的表单验证。例如,使用 :class…

vue实现动态绑定样式

vue实现动态绑定样式

动态绑定样式的方法 在Vue中实现动态绑定样式主要通过v-bind:class和v-bind:style指令完成,支持对象语法、数组语法等多种灵活方式。 对象语法 通过对象可以动态切换class,对…