当前位置:首页 > VUE

vue 实现双向绑定

2026-02-19 21:55:10VUE

Vue 双向绑定实现原理

Vue 的双向绑定主要通过 v-model 指令实现,其核心是结合了数据绑定(v-bind)和事件监听(v-on)。以下是具体实现方式:

基础语法

在表单元素上使用 v-model 绑定数据:

vue 实现双向绑定

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

实现机制

  1. 数据劫持
    Vue 使用 Object.defineProperty(Vue 2)或 Proxy(Vue 3)监听数据变化,当数据修改时触发视图更新。

    vue 实现双向绑定

  2. 模板编译
    模板中的 v-model 会被编译为以下等效代码:

    <input 
      :value="message" 
      @input="message = $event.target.value" 
    />
  3. 自定义组件支持
    在自定义组件中实现双向绑定需显式定义 model 选项(Vue 2)或使用 v-model 参数(Vue 3):

    // Vue 2
    export default {
      model: {
        prop: 'value',
        event: 'input'
      },
      props: ['value']
    }
    <!-- Vue 3 -->
    <CustomComponent v-model:title="pageTitle" />

修饰符

  • .lazy:将 input 事件改为 change 事件触发更新。
  • .number:自动将输入值转为数字类型。
  • .trim:自动过滤首尾空格。

示例代码

// Vue 3 Composition API
import { ref } from 'vue';
export default {
  setup() {
    const text = ref('');
    return { text };
  }
}

注意事项

  • 双向绑定仅适用于表单输入元素或自定义组件。
  • 复杂对象属性需用 v-model:propName 语法单独绑定。
  • Vue 3 的 v-model 默认使用 modelValue 作为 prop 名和 update:modelValue 作为事件名。

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

相关文章

vue实现数据双向

vue实现数据双向

在Vue中实现数据双向绑定主要依靠v-model指令,它结合了属性绑定和事件监听,适用于表单元素或自定义组件。以下是具体实现方式: 基础表单元素的双向绑定 对于原生表单元素(如input、texta…

vue实现事件绑定

vue实现事件绑定

Vue 事件绑定实现方法 Vue 提供了多种方式实现事件绑定,以下是常用方法: v-on 指令 使用 v-on 指令绑定事件监听器,语法为 v-on:event="handler" 或简写为 @ev…

实现vue数组双向绑定

实现vue数组双向绑定

Vue 数组双向绑定的实现方法 Vue 通过数据劫持和发布-订阅模式实现数据的双向绑定,但直接修改数组的某些方法(如索引赋值)无法触发视图更新。以下是实现数组双向绑定的几种方法: 使用 Vue.se…

vue中实现双向绑定

vue中实现双向绑定

Vue 双向绑定的实现方式 Vue 中实现双向绑定主要通过 v-model 指令,它结合了属性绑定和事件监听,适用于表单元素和自定义组件。 表单元素的双向绑定 在表单元素(如 input、texta…

vue双向数据怎么实现

vue双向数据怎么实现

Vue 双向数据绑定的实现 Vue 的双向数据绑定主要通过 v-model 指令实现,结合数据劫持(Object.defineProperty 或 Proxy)和发布-订阅模式完成数据与视图的同步更新…

vue动态绑定实现原理

vue动态绑定实现原理

Vue动态绑定的核心原理 Vue的动态绑定主要通过数据劫持结合发布者-订阅者模式实现。当数据发生变化时,视图会自动更新,这一机制被称为响应式系统。 数据劫持与响应式 Vue使用Object.defi…