vue里$set

当在Vue项目中尝试为data对象动态添加属性时,可能会遇到视图未更新的问题。这是因为Vue无法监听到运行时新增的属性。解决此问题的方法包括使用`this.$set(obj, key, value)`或`Object.assign()`。`this.$set`是Vue提供的响应式设置属性的方法,而`Object.assign`可以合并对象并触发视图更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

this.#set(obj, key, value)

在项目开发中,经常会遇到这样问题,为data中的某一个对象添加一个属性

但是从控制台打印中可以看到属性已经添加到对象里了,但是视图(页面)里没有展示。在这里我们发现虽然这个对象身上已经有了该属性,但是视图层并没有更新该数据,是什么造成的呢?由于受JavaScript的限制,vue.js不能监听对象属性的添加和删除,因为在vue组件初始化的过程中,会调用getter和setter方法,所以该属性必须是存在在data中,视图层才会响应该数据的变化。

解决这个问题的方法大体有两种:

  1. 使用this.$set(obj, key, value)/vue.set(obj, key, value)
  2. 通过Object.assign(target, sources)方法

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值