当前位置:首页 > 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(自动转为数字):

vue双向绑定实现案例

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

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

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

相关文章

react如何绑定事件

react如何绑定事件

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

vue实现数组绑定

vue实现数组绑定

Vue 数组绑定的实现方法 Vue 提供了多种方式实现数组的响应式绑定,确保数据变化时视图自动更新。以下是常见的实现方法: 使用 v-for 指令渲染数组 通过 v-for 指令可以遍历数组并渲染…

vue双向绑定实现

vue双向绑定实现

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

vue怎么实现双向

vue怎么实现双向

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

vue实现事件绑定

vue实现事件绑定

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

实现vue数据绑定

实现vue数据绑定

Vue数据绑定的实现方式 Vue.js通过数据劫持和发布-订阅模式实现数据绑定,核心是响应式系统。以下是主要实现方法: 双向数据绑定(v-model) <input v-model="mess…