当前位置:首页 > VUE

vue如何实现绑定

2026-02-17 12:49:10VUE

Vue 中的数据绑定实现

Vue 通过数据劫持和发布-订阅模式实现数据绑定,核心是响应式系统。以下是具体实现方式:

双向绑定(v-model)

<input v-model="message">
<p>{{ message }}</p>
data() {
  return {
    message: ''
  }
}

v-model 是语法糖,相当于同时绑定 value 属性和 input 事件。

单向绑定(插值表达式)

<p>{{ message }}</p>

数据变化会自动更新 DOM,但 DOM 变化不会影响数据。

属性绑定(v-bind)

<img v-bind:src="imageSrc">

简写形式:

vue如何实现绑定

<img :src="imageSrc">

样式绑定

对象语法:

<div :class="{ active: isActive }"></div>

数组语法:

<div :class="[activeClass, errorClass]"></div>

响应式原理

  1. 通过 Object.defineProperty 或 Proxy 拦截数据操作
  2. 每个组件实例对应一个 watcher 实例
  3. 数据变化时触发 setter,通知 watcher 重新渲染

自定义组件绑定

<custom-component v-model="value"></custom-component>

组件内部需要实现:

vue如何实现绑定

props: ['value'],
emits: ['update:value']

修饰符

.lazy:

<input v-model.lazy="msg">

.number:

<input v-model.number="age">

.trim:

<input v-model.trim="msg">

注意事项

  • 对象新增属性需要使用 Vue.set 或 this.$set
  • 数组变异方法能被检测,但直接赋值索引需要特殊处理
  • v-model 在自定义组件上默认使用 modelValue 属性和 update:modelValue 事件

分享给朋友:

相关文章

vue实现绑定输入参数

vue实现绑定输入参数

Vue 实现绑定输入参数 在 Vue 中,可以通过 v-model 指令实现输入框与数据的双向绑定。以下是一个简单的示例: <template> <div> &l…

uniapp怎么给标签绑定颜色

uniapp怎么给标签绑定颜色

在 uniapp 中给标签绑定颜色 在 uniapp 中,可以通过动态绑定样式或类名的方式为标签设置颜色。以下是几种常见的方法: 动态绑定内联样式 使用 :style 绑定动态样式对象,直接在标签…

vue如何实现滚动

vue如何实现滚动

Vue 实现滚动的方法 使用原生滚动 在Vue中可以直接使用HTML原生滚动,通过CSS设置overflow: auto或overflow: scroll来实现滚动效果。适用于简单场景。 <d…

vue如何实现录音

vue如何实现录音

使用Web Audio API实现录音 在Vue中实现录音功能可以通过Web Audio API结合MediaRecorder API来完成。以下是一个基础实现方案: 安装必要的依赖: npm i…

vue如何实现控制

vue如何实现控制

Vue 实现控制的方法 Vue 提供了多种方式来实现对应用的控制,包括数据绑定、条件渲染、循环渲染、事件处理等。以下是几种常见的控制方法: 数据绑定 通过 v-model 指令实现双向数据绑定,可以…

vue 如何实现onshow

vue 如何实现onshow

监听生命周期钩子 在Vue中,可以通过生命周期钩子函数来监听组件的显示状态。mounted和activated钩子常用于处理组件显示时的逻辑。mounted在组件首次挂载时触发,而activated在…