当前位置:首页 > VUE

vue怎样实现双向绑定

2026-02-23 07:46:24VUE

Vue 双向绑定的实现方式

Vue 主要通过 v-model 指令实现双向绑定,它结合了 v-bindv-on 的功能,能够自动同步表单输入值与 Vue 实例的数据。

基础语法

在表单元素上使用 v-model,绑定到 Vue 实例的数据属性:

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

对应的 Vue 实例:

new Vue({
  el: '#app',
  data: {
    message: ''
  }
})

实现原理

  1. 数据劫持
    Vue 使用 Object.definePropertyProxy(Vue 3)劫持数据的 gettersetter,在数据变化时触发视图更新。

  2. 模板编译
    模板中的 v-model 会被编译为 v-bindv-on 的组合。例如:

    <input v-model="message">

    等价于:

    <input 
      :value="message" 
      @input="message = $event.target.value"
    >
  3. 自定义组件中的双向绑定
    在组件中,v-model 默认绑定到 value prop 和 input 事件。可以通过 model 选项修改:

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

修饰符

  • .lazy:将 input 事件改为 change 事件(失焦后更新)
    <input v-model.lazy="message">
  • .number:自动将输入转为数字类型
    <input v-model.number="age" type="number">
  • .trim:自动去除首尾空格
    <input v-model.trim="text">

Vue 3 的改进

Vue 3 中 v-model 支持多个绑定,并默认使用 modelValueupdate:modelValue 替代 valueinput

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

等价于:

<custom-input
  :modelValue="message"
  @update:modelValue="message = $event"
></custom-input>

vue怎样实现双向绑定

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

相关文章

uniapp怎么给标签绑定颜色

uniapp怎么给标签绑定颜色

在 uniapp 中给标签绑定颜色 在 uniapp 中,可以通过动态绑定样式或类名的方式为标签设置颜色。以下是几种常见的方法: 动态绑定内联样式 使用 :style 绑定动态样式对象,直接在标签…

实现vue双向绑定

实现vue双向绑定

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

react如何绑定事件

react如何绑定事件

React 事件绑定方法 在 React 中绑定事件有多种方式,以下是常见的几种方法: 使用 onClick 或其他事件属性直接绑定 <button onClick={() => co…

jquery绑定事件

jquery绑定事件

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

php实现双向队列

php实现双向队列

PHP 实现双向队列的方法 双向队列(Deque,Double-ended Queue)是一种允许在队列两端进行插入和删除操作的数据结构。PHP 中可以通过数组或 SplDoublyLinkedLis…

vue 双向实现原理

vue 双向实现原理

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