当前位置:首页 > 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 提供了多个修饰符:

vue实现双向绑定代码

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

vue双向数据绑定实现

vue双向数据绑定实现

双向数据绑定的概念 双向数据绑定是指视图(View)与模型(Model)之间的双向同步。当数据发生变化时,视图自动更新;当用户操作视图时,数据也会自动更新。Vue 通过 v-model 指令实现双向数…

vue双向数据实现

vue双向数据实现

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

vue如何实现双向变电

vue如何实现双向变电

Vue 双向绑定实现方法 Vue 中实现双向绑定的核心是通过 v-model 指令,它结合了 v-bind 和 v-on 的功能,简化了表单元素与数据的同步操作。 基础用法 在表单元素上直接使用 v…

vue绑定图片实现默认

vue绑定图片实现默认

vue绑定图片实现默认的方法 在Vue中绑定图片并设置默认图片,可以通过多种方式实现。以下是几种常见的方法: 使用v-bind绑定图片路径 在模板中使用v-bind指令绑定图片路径,同时设置默认图…

vue表单实现双向绑定

vue表单实现双向绑定

Vue 表单双向绑定实现方法 Vue 通过 v-model 指令实现表单元素与数据的双向绑定。以下是常见表单元素的双向绑定示例: 文本输入框 <input type="text" v-mode…