当前位置:首页 > 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 双向数据绑定的实现原理 Vue 的双向数据绑定主要通过 v-model 指令实现,其核心是结合了数据劫持(Object.defineProperty 或 Proxy)和发布-订阅模式。以下是具…

vue实现双休绑定

vue实现双休绑定

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

vue双向实现原理

vue双向实现原理

Vue 双向数据绑定的实现原理 Vue 的双向数据绑定主要通过数据劫持结合发布-订阅模式实现,核心是 Object.defineProperty(Vue 2.x)或 Proxy(Vue 3.x)。…

vue怎么实现双向

vue怎么实现双向

Vue 双向绑定的实现方式 Vue 中实现双向绑定的核心机制是 v-model 指令,它结合了属性绑定和事件监听,适用于表单元素或自定义组件。 表单元素的双向绑定 在原生表单元素(如 input、s…

vue中实现双向数据

vue中实现双向数据

Vue 中实现双向数据绑定的方法 使用 v-model 指令 v-model 是 Vue 提供的语法糖,用于在表单元素上实现双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素的值。 <…

vue自己实现双向绑定

vue自己实现双向绑定

实现 Vue 双向绑定的核心原理 双向绑定的核心是通过数据劫持结合发布-订阅模式实现的。主要涉及 Object.defineProperty 或 Proxy 来监听数据变化,并通过观察者模式通知视图更…