{{…">

当前位置:首页 > VUE

vue组件实现双向绑定

2026-02-24 16:02:22VUE

使用 v-model 指令

Vue 提供了 v-model 指令实现表单元素与数据的双向绑定。例如输入框:

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

v-model 会自动将输入框的值与 message 数据属性同步。

自定义组件的双向绑定

自定义组件需通过 model 选项和 $emit 实现类似功能:

  1. 定义 model 选项
    export default {
      model: {
        prop: 'value',  // 绑定的属性名
        event: 'input'  // 触发的事件名
      },
      props: ['value']
    }
  2. 触发事件更新父组件
    在子组件内部通过 $emit 触发事件:
    this.$emit('input', newValue);
  3. 父组件中使用 v-model
    <custom-input v-model="parentData"></custom-input>

使用 .sync 修饰符

Vue 支持通过 .sync 修饰符实现多个属性的双向绑定:

  1. 子组件触发更新
    this.$emit('update:propName', newValue);
  2. 父组件绑定
    <child-component :propName.sync="parentData"></child-component>

手动实现绑定(适用于复杂场景)

结合 :value@input 手动控制数据流:

<custom-input 
  :value="data" 
  @input="data = $event">
</custom-input>

子组件内部通过 props 接收 value 并触发 input 事件。

vue组件实现双向绑定

注意事项

  • 单向数据流是 Vue 的核心原则,双向绑定应谨慎使用。
  • 复杂场景推荐使用 Vuex 或 Pinia 管理状态。
  • 自定义组件中,v-model 默认对应 value 属性和 input 事件,可通过 model 选项修改。

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

相关文章

jquery事件绑定

jquery事件绑定

jQuery 事件绑定的基本方法 使用 on() 方法绑定事件是最推荐的方式,兼容性强且支持动态元素。语法如下: $(selector).on(eventName, handlerFunction)…

vue如何实现绑定

vue如何实现绑定

数据绑定基础 Vue 通过 v-bind 指令实现动态绑定 HTML 属性或组件 prop。基本语法为 v-bind:属性名="表达式",简写为 :属性名="表达式"。例如绑定 class 或 sty…

Vue数据绑定实现

Vue数据绑定实现

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

vue实现双向滚动

vue实现双向滚动

实现双向滚动的 Vue 方法 双向滚动通常指两个关联的滚动区域(如表格的头部和内容部分)同步滚动。以下是几种实现方式: 使用事件监听和 scroll 方法 通过监听一个滚动区域的 scrol…

vue实现数据双向

vue实现数据双向

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

vue双向数据实现

vue双向数据实现

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