当前位置:首页 > VUE

vue双向绑定实现案例

2026-01-23 08:10:21VUE

Vue 双向绑定实现案例

Vue 的双向绑定通过 v-model 指令实现,结合了数据绑定和事件监听。以下是几种常见场景的实现案例:

基础输入框绑定

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

<script>
export default {
  data() {
    return {
      message: ''
    }
  }
}
</script>
  • v-model 绑定 message 数据,输入框内容变化时自动更新数据,页面渲染同步显示。

复选框绑定

<template>
  <input type="checkbox" v-model="isChecked">
  <label>{{ isChecked ? '已选中' : '未选中' }}</label>
</template>

<script>
export default {
  data() {
    return {
      isChecked: false
    }
  }
}
</script>
  • 适用于布尔值场景,复选框状态与 isChecked 数据双向同步。

单选按钮绑定

<template>
  <input type="radio" v-model="selectedOption" value="A">
  <label>选项A</label>
  <input type="radio" v-model="selectedOption" value="B">
  <label>选项B</label>
  <p>当前选择:{{ selectedOption }}</p>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: 'A'
    }
  }
}
</script>
  • 多个单选按钮绑定同一数据,选中时更新为对应的 value 值。

下拉选择框绑定

<template>
  <select v-model="selectedFruit">
    <option disabled value="">请选择</option>
    <option value="apple">苹果</option>
    <option value="banana">香蕉</option>
  </select>
  <p>选择的水果:{{ selectedFruit }}</p>
</template>

<script>
export default {
  data() {
    return {
      selectedFruit: ''
    }
  }
}
</script>
  • select 元素的绑定方式与输入框类似,数据同步为选中项的 value

自定义组件双向绑定

若需在自定义组件中实现 v-model,需定义 model 选项并触发事件:

<!-- 父组件 -->
<template>
  <CustomInput v-model="customValue" />
</template>

<script>
export default {
  data() {
    return {
      customValue: ''
    }
  }
}
</script>

<!-- 子组件 CustomInput.vue -->
<template>
  <input 
    :value="value" 
    @input="$emit('input', $event.target.value)"
  >
</template>

<script>
export default {
  props: ['value']
}
</script>
  • 子组件通过 props 接收 value,并通过 $emit('input') 通知父组件更新数据。

修饰符应用

v-model 支持修饰符,例如 .lazy(转为 change 事件触发)、.number(自动转为数字):

<input v-model.lazy="lazyMessage">
<input v-model.number="numericValue" type="number">

以上案例覆盖了 Vue 双向绑定的核心用法,可根据实际需求组合或扩展。

vue双向绑定实现案例

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

相关文章

vue双向实现数据

vue双向实现数据

Vue 双向数据绑定的实现 Vue 的双向数据绑定主要通过 v-model 指令实现,它结合了 v-bind 和 v-on 的功能,能够同步表单输入和应用状态。 基本语法 在表单元素上使用 v-mo…

vue实现数据绑定

vue实现数据绑定

Vue 数据绑定的实现方式 Vue.js 提供了多种数据绑定方式,主要包括双向绑定 (v-model)、单向绑定 ({{ }} 插值或 v-bind)、以及响应式数据管理。以下是具体实现方法: 双向…

php实现双向队列

php实现双向队列

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

vue 双向实现原理

vue 双向实现原理

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

实现vue动态绑定

实现vue动态绑定

动态绑定的基本语法 在Vue中,使用v-bind指令或简写:实现动态绑定,将数据属性与HTML元素的属性关联起来。例如动态绑定class或style: <div v-bind:class="{…

vue 实现双向绑定

vue 实现双向绑定

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