当前位置:首页 > VUE

怎么用vue.js实现双向绑定

2026-02-09 10:04:52VUE

Vue.js 双向绑定实现方法

Vue.js 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素。以下是具体实现方式:

基础用法

在模板中使用 v-model 绑定数据,数据变化会自动同步到视图,反之亦然:

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

组件中实现

在自定义组件中实现双向绑定需要显式定义 model 选项和触发事件:

Vue.component('custom-input', {
  props: ['value'],
  template: `
    <input
      :value="value"
      @input="$emit('input', $event.target.value)"
    >
  `
});

使用方式与原生元素一致:

怎么用vue.js实现双向绑定

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

修饰符

v-model 支持修饰符来调整行为:

  • .lazy:将 input 事件改为 change 事件(失焦后更新)
  • .number:自动将输入转为数值类型
  • .trim:自动去除首尾空格

示例:

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

多选框绑定

对于多选框,v-model 会绑定到数组:

怎么用vue.js实现双向绑定

<input type="checkbox" v-model="checkedNames" value="Jack">
<input type="checkbox" v-model="checkedNames" value="John">

单选按钮绑定

单选按钮绑定到单个值:

<input type="radio" v-model="picked" value="One">

下拉选择框

select 元素绑定到当前选中项:

<select v-model="selected">
  <option disabled value="">请选择</option>
  <option>A</option>
</select>

原理说明

Vue 的双向绑定本质是语法糖,它相当于:

<input :value="message" @input="message = $event.target.value">

在组件中需要手动处理 value prop 和 input 事件来实现相同效果。

标签: 绑定双向
分享给朋友:

相关文章

vue样式绑定实现收藏

vue样式绑定实现收藏

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

jquery绑定事件

jquery绑定事件

jQuery 绑定事件的方法 jQuery 提供了多种方式来绑定事件,以下是常见的几种方法: on() 方法 on() 是最推荐的事件绑定方法,支持动态元素和多个事件绑定。 $(selector)…

Vue数据绑定实现

Vue数据绑定实现

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

vue 双向实现原理

vue 双向实现原理

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

实现vue动态绑定

实现vue动态绑定

动态绑定的基本语法 在Vue中,使用v-bind指令或简写:实现动态绑定,将数据属性与HTML元素的属性关联起来。例如动态绑定class或style: <div v-bind:class="{…

vue实现双休绑定

vue实现双休绑定

Vue 实现双向绑定 Vue.js 通过 v-model 指令实现双向绑定,主要用于表单输入元素(如 <input>、<textarea>、<select>)与组件…