当前位置:首页 > VUE

vue表单实现双向绑定

2026-01-21 18:21:06VUE

Vue 表单双向绑定实现方法

Vue 通过 v-model 指令实现表单元素与数据的双向绑定。以下是常见表单元素的双向绑定示例:

文本输入框

<input type="text" v-model="message">
<p>输入的内容:{{ message }}</p>

多行文本框

<textarea v-model="message"></textarea>
<p>输入的内容:{{ message }}</p>

复选框

单个复选框绑定布尔值:

<input type="checkbox" v-model="checked">
<p>复选框状态:{{ checked }}</p>

多个复选框绑定数组:

<input type="checkbox" value="A" v-model="checkedItems">
<input type="checkbox" value="B" v-model="checkedItems">
<p>选中的项:{{ checkedItems }}</p>

单选按钮

<input type="radio" value="A" v-model="picked">
<input type="radio" value="B" v-model="picked">
<p>选择的值:{{ picked }}</p>

下拉选择框

<select v-model="selected">
  <option value="A">选项A</option>
  <option value="B">选项B</option>
</select>
<p>选择的值:{{ selected }}</p>

修饰符

Vue 为 v-model 提供了一些有用的修饰符:

.lazy - 将 input 事件转为 change 事件后同步数据

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

.number - 自动将输入值转为数值类型

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

.trim - 自动过滤用户输入的首尾空白字符

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

自定义组件双向绑定

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

  1. 组件内部使用 model 选项指定 prop 和 event
  2. 在组件内部通过 $emit 触发事件
Vue.component('custom-input', {
  props: ['value'],
  model: {
    prop: 'value',
    event: 'input'
  },
  template: `
    <input
      :value="value"
      @input="$emit('input', $event.target.value)"
    >
  `
})

使用方式与原生元素相同:

<custom-input v-model="message"></custom-input>

注意事项

  • 对于单选按钮、复选框和选择框,v-model 绑定的值通常是静态字符串或布尔值
  • 多个复选框可以绑定到同一个数组
  • 在组件上使用 v-model 默认会利用名为 value 的 prop 和名为 input 的事件
  • Vue 3 中 v-model 的 prop 和事件默认名称有所变化

vue表单实现双向绑定

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

相关文章

css 制作表单

css 制作表单

使用 CSS 制作表单 表单是网页交互的重要组成部分,通过 CSS 可以美化表单元素,提升用户体验。以下是常见的表单样式设计方法。 基础表单结构 HTML 表单通常包含输入框、标签、按钮等元素。以下…

vue样式绑定实现收藏

vue样式绑定实现收藏

Vue 样式绑定实现收藏功能 在 Vue 中,可以通过动态绑定样式来实现收藏功能,常见的方法是使用 v-bind:class 或 v-bind:style 来切换样式状态。 使用 v-bind:cl…

vue数据实现双向绑定

vue数据实现双向绑定

Vue 数据双向绑定的实现原理 Vue 的数据双向绑定主要通过 v-model 指令实现,结合了数据绑定和事件监听。以下是核心实现方式: 使用 v-model 指令 v-model 是语法糖,自动…

vue 绑定实现

vue 绑定实现

Vue 数据绑定实现 Vue 的数据绑定主要通过响应式系统和模板编译实现,以下是核心实现方式: 双向绑定 (v-model) 适用于表单元素,自动同步输入值与 Vue 实例数据: <in…

实现vue双向绑定

实现vue双向绑定

Vue 双向绑定的实现原理 Vue 的双向绑定主要通过 v-model 指令实现,其核心是结合数据劫持(Object.defineProperty 或 Proxy)和发布-订阅模式。以下是具体实现机制…

vue实现新增表单

vue实现新增表单

Vue 新增表单实现方法 使用 v-model 绑定表单数据 在 Vue 中通过 v-model 指令实现表单数据的双向绑定。在 data 中定义表单数据对象,每个表单项对应一个属性。 data(…