当前位置:首页 > VUE

vue实现双向绑定代码

2026-01-23 15:02:29VUE

Vue 双向绑定实现代码

Vue 的双向绑定主要通过 v-model 指令实现,它结合了 v-bind(属性绑定)和 v-on(事件监听)的功能。以下是几种常见场景的实现代码:

基础输入框绑定

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

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

复选框绑定

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

<script>
export default {
  data() {
    return {
      checked: false
    }
  }
}
</script>

单选按钮绑定

<template>
  <div>
    <input type="radio" v-model="picked" value="选项A">
    <label>选项A</label>
    <input type="radio" v-model="picked" value="选项B">
    <label>选项B</label>
    <p>选择的是:{{ picked }}</p>
  </div>
</template>

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

下拉选择框绑定

<template>
  <div>
    <select v-model="selected">
      <option disabled value="">请选择</option>
      <option>选项1</option>
      <option>选项2</option>
      <option>选项3</option>
    </select>
    <p>选择的是:{{ selected }}</p>
  </div>
</template>

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

自定义组件实现双向绑定

对于自定义组件,需要显式定义 model 选项并触发 input 事件:

<template>
  <div>
    <custom-input v-model="customValue"></custom-input>
    <p>组件值:{{ customValue }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      customValue: ''
    }
  },
  components: {
    'custom-input': {
      props: ['value'],
      model: {
        prop: 'value',
        event: 'input'
      },
      template: `
        <input 
          :value="value"
          @input="$emit('input', $event.target.value)">
      `
    }
  }
}
</script>

修饰符使用

Vue 为 v-model 提供了多个修饰符:

  • .lazy:将输入事件改为 change 事件触发
  • .number:自动将输入转为数字类型
  • .trim:自动去除首尾空格
<input v-model.lazy="msg">  <!-- 在change时更新 -->
<input v-model.number="age" type="number">  <!-- 自动转数字 -->
<input v-model.trim="text">  <!-- 自动去除空格 -->

vue实现双向绑定代码

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

相关文章

vue双向绑定实现简单

vue双向绑定实现简单

Vue 双向绑定的简单实现 双向绑定的核心是通过数据劫持结合发布-订阅模式实现。以下是简化版的实现步骤: 数据劫持(Object.defineProperty) 通过 Object.defineP…

vue实现双向绑定的是

vue实现双向绑定的是

Vue 双向绑定实现原理 Vue 实现双向绑定的核心机制是数据劫持结合发布-订阅模式,主要通过 v-model 指令实现。以下是关键实现细节: 数据劫持(响应式系统) Vue 2.x 使用 Obj…

react如何绑定事件

react如何绑定事件

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

vue 双向绑定实现

vue 双向绑定实现

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

vue实现双向滚动

vue实现双向滚动

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

vue实现数据双向

vue实现数据双向

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