vue通过$set更新数组

在Vue.js中,如果你想修改数组中的某个对象的属性值并确保视图能响应更新

我一开始是下面这样写。怎么都不生效。

data() {
  return {
    items: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
      // 更多对象...
    ]
  }
}
 this.$nextTick(() => {
        this.$set(this.items[index], 'name', 'New Name' );
        // 在这里进行其他相关更改
      })

只有改成浅拷贝的模式才能生效

const index = this.items.findIndex(item => item.id === 2);
if (index !== -1) {
  this.$set(this.items, index, { ...this.items[index], name: 'New Name' });
}

这里我们首先找到目标对象的索引,然后使用$set方法来设置整个对象的新值,新值是原对象的一个浅拷贝,并且包含了你要修改的那个属性的新值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容