Vue数据绑定类型

一、Vue 数据绑定的基本概念

Vue 采用 双向数据绑定,其核心由以下部分组成:

  • 数据(Data):Vue 组件的 data 选项或 setup 函数返回的响应式状态

  • 视图(View):模板(template)中的 DOM 结构

  • 数据劫持:Vue 监听数据变化,并在数据变更时自动更新视图

Vue采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的settergetter,在数据变动时发布消息给订阅者,触发相应的监听回调。

二、Vue 绑定类型及作用

1、单向绑定

  • v-bind:将数据动态绑定到 HTML 属性(如 :id="dynamicId")、类/样式(如 :class="{ active: isActive }")。数据仅从 Vue 实例流向视图

  • 插值语法(  {{ }}  )​:在模板中直接插入数据(如 <div>{{ message }}</div>),数据变化自动更新视图

2、​双向绑定(v-model)​

  • 主要用于表单元素(如 <input v-model="message">),数据在视图和模型间双向流动。用户输入会同步到数据,数据变更也会更新视图

3、​指令绑定

  • 条件渲染:如 v-if(动态添加/移除元素)和 v-show(通过 CSS 控制显隐)

  • 循环渲染:如 v-for(遍历数组或对象生成元素)

三、v-model 与 v-bind 的区别

特性v-modelv-bind
绑定方向双向(视图 ↔ 模型)单向(模型 → 视图)
适用场景表单元素(输入框、复选框等)所有 HTML 属性、类、样式等
响应性实时同步仅数据变化时更新视图
底层实现语法糖,等价于 :value + @input 事件直接绑定属性值

v-bind 单向绑定时子组件影响父组件的情况

正常情况下:单向数据流下,子组件无法直接修改父组件传递的 props
例外情况

  • 若父组件传递的是引用类型(如对象或数组)​,子组件修改其内部属性(如 obj.key = newValue)会直接影响父组件的数据,因为引用地址未变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值