Vue this.$set(this.parentBean, ‘children‘, []) 无效

是因为这个对象已存在children Vue没有做这种响应式的处理

所以

  delete this.clickOrBean.children

this.$set(this.parentBean, 'children', []) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,`this.$set`是一个实例方法,用于在响应式对象上设置新的属性或修改已有的属性,并确保这些属性也是响应式的。 通常情况下,当你在Vue实例或组件的`data`选项中声明一个属性时,Vue会将其转化为响应式属性,这意味着当属性的值发生变化时,相关的视图会自动更新。然而,对于已经创建的对象,Vue无法追踪属性的添加或修改。这时,就需要使用`this.$set`方法来达到响应式更新的效果。 使用方法如下: ```javascript this.$set(object, key, value) ``` - `object`:要添加或修改属性的对象。 - `key`:要添加或修改的属性名。 - `value`:要设置的属性值。 下面是一个示例: ```javascript var app = new Vue({ data: { myObject: {} }, mounted: function () { this.$set(this.myObject, 'name', 'John'); this.$set(this.myObject, 'age', 25); } }); ``` 在上面的示例中,我们在Vue实例中的`data`选项中定义了一个空对象`myObject`。然后,在组件的`mounted`生命周期钩子中使用`this.$set`方法向`myObject`对象添加了两个属性:`name`和`age`。由于使用了`this.$set`方法,这两个属性也会成为响应式属性。 需要注意的是,如果要修改数组的某个元素,也需要使用`this.$set`方法。Vue无法检测到通过索引修改数组元素的变化。例如: ```javascript var app = new Vue({ data: { myArray: ['a', 'b', 'c'] }, methods: { updateArray: function (index, newValue) { this.$set(this.myArray, index, newValue); } } }); ``` 在上面的示例中,我们定义了一个`updateArray`方法,用于修改`myArray`数组中指定索引的元素。通过使用`this.$set`方法,可以确保修改后的数组元素是响应式的。 希望这个解答对你有所帮助!如果你还有其他关于Vue的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值