当前位置:首页 > 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 的双向绑定主要通过数据劫持结合发布者-订阅者模式实现,核心是 Object.defineProperty(Vue 2.x)或 Proxy(Vue 3.x)。 数据…

vue绑定图片实现默认

vue绑定图片实现默认

vue绑定图片实现默认的方法 在Vue中绑定图片并设置默认图片,可以通过多种方式实现。以下是几种常见的方法: 使用v-bind绑定图片路径 在模板中使用v-bind指令绑定图片路径,同时设置默认图…

vue实现数据双向绑定

vue实现数据双向绑定

Vue 数据双向绑定的实现原理 Vue 的数据双向绑定主要通过 v-model 指令实现,其核心是基于数据劫持和发布-订阅模式。以下是关键实现机制: 数据劫持(响应式原理) Vue 使用 Objec…

vue怎么实现数据绑定

vue怎么实现数据绑定

Vue 数据绑定的实现方式 Vue 的数据绑定主要通过指令和响应式系统实现,以下是核心方法: 双向数据绑定(v-model) v-model 指令用于表单元素与数据的双向绑定: <input…

react如何绑定数据

react如何绑定数据

React 数据绑定的方法 React 中的数据绑定通常通过状态(state)和属性(props)来实现,以下是几种常见的绑定方式: 单向数据绑定(State to UI) React 默认采用单向…

react如何解除绑定事件

react如何解除绑定事件

解除绑定事件的方法 在React中,解除事件绑定通常涉及在组件卸载时清理事件监听器。以下是几种常见场景的解决方案: 类组件中的事件解绑 在类组件中,通常在componentWillUnmount生命…