当前位置:首页 > VUE

vue简单实现双向绑定

2026-01-20 12:53:07VUE

Vue 双向绑定的简单实现

Vue 的双向绑定核心是通过 v-model 指令实现的,它结合了 v-bindv-on 的功能。以下是一个简单的实现方式:

模板部分

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

脚本部分

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

手动实现双向绑定

如果需要手动实现类似 v-model 的功能,可以通过以下方式:

模板部分

<template>
  <div>
    <input 
      :value="message" 
      @input="message = $event.target.value" 
      placeholder="输入内容"
    >
    <p>输入的内容是: {{ message }}</p>
  </div>
</template>

脚本部分

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

自定义组件实现双向绑定

在自定义组件中实现双向绑定,需要使用 model 选项和 $emit

子组件

<template>
  <input 
    :value="value" 
    @input="$emit('input', $event.target.value)"
  >
</template>

<script>
export default {
  props: ['value'],
  model: {
    prop: 'value',
    event: 'input'
  }
}
</script>

父组件

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

<script>
import CustomInput from './CustomInput.vue'

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

使用计算属性实现复杂绑定

对于需要处理复杂逻辑的情况,可以使用计算属性:

vue简单实现双向绑定

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

<script>
export default {
  data() {
    return {
      rawMessage: ''
    }
  },
  computed: {
    computedMessage: {
      get() {
        return this.rawMessage
      },
      set(value) {
        this.rawMessage = value.toUpperCase()
      }
    }
  }
}
</script>

以上方法展示了 Vue 中实现双向绑定的不同方式,从最简单的 v-model 到自定义组件的实现,以及使用计算属性处理复杂逻辑的场景。

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

相关文章

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 主要通过 v-model 指令实现双向绑定,适用于表单元素或自定义组件。以下是几种常见实现方式: 表单元素的双向绑定 在表单元素(如 input、textarea…

jquery绑定事件

jquery绑定事件

jQuery 绑定事件的方法 jQuery 提供了多种方式来绑定事件,以下是常见的几种方法: on() 方法 on() 是最推荐的事件绑定方法,支持动态元素和多个事件绑定。 $(selector)…

vue实现双休绑定

vue实现双休绑定

Vue 实现双向绑定 Vue.js 通过 v-model 指令实现双向绑定,主要用于表单输入元素(如 <input>、<textarea>、<select>)与组件…

vue双向绑定实现方式

vue双向绑定实现方式

Vue 双向绑定的实现方式 Vue 的双向绑定主要通过 v-model 指令实现,结合数据劫持和发布-订阅模式完成数据与视图的同步更新。以下是核心实现原理及方式: 数据劫持(响应式原理) Vue 使…

vue双向数据实现

vue双向数据实现

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

vue实现数组元素绑定

vue实现数组元素绑定

Vue 数组元素绑定方法 在 Vue 中实现数组元素绑定需要特别注意响应式更新的问题。以下是几种常见实现方式: 直接索引绑定(不推荐) 直接通过索引修改数组元素不会触发视图更新: this.arr…