简述Vue.set 方法原理 ?

Vue.set 方法在 Vue.js 中用于向响应式对象添加一个属性,并确保这个新属性同样是响应式的,即当这个属性变化时,视图会进行更新。这个方法通常用于数组和对象,因为它们在默认情况下无法检测到新增的属性或元素。

Vue.js 中的响应式系统是基于 ES5 的 Object.defineProperty 方法实现的。对于每个响应式数据,Vue.js 会使用这个方法将其转换为 getter/setter,以便在数据变化时通知视图更新。然而,由于技术限制,Vue.js 无法检测到对象属性的添加或删除,也无法检测到数组通过索引直接设置项或者修改数组长度的情况。这就是为什么我们需要 Vue.set 方法。

Vue.set 方法的工作原理是这样的:首先,它会检查目标对象是否是响应式的,如果是,那么就会使用 Object.defineProperty 方法将新属性转换为 getter/setter。然后,它会设置新属性的值,并触发视图更新。

let obj = Vue.observable({ a: 1 });

现在,我们想要添加一个新属性 b,并确保它是响应式的:

Vue.set(obj, 'b', 2);

现在,obj.b 是响应式的,当它变化时,视图会进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值