美文网首页
vue通过$set更新数组

vue通过$set更新数组

作者: __鹿__ | 来源:发表于2024-03-11 20:12 被阅读0次

在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方法来设置整个对象的新值,新值是原对象的一个浅拷贝,并且包含了你要修改的那个属性的新值。

相关文章

  • vue 数组改变后界面未渲染

    vue是通过检测get,set才得知数据是否更新的,而对于数组来说,是没有get,set方法的,所以需要我们自己手...

  • vue-数组/对象更新 视图不更新 this.$set

    vue-数组/对象更新 视图不更新 this.$set 情况 很多时候,我们习惯于这样操作数组和对象: 由于js的...

  • Vue学习

    $set 1.vue不能检测以下变动的数组 (不能通过索引或者length改变数组) 通过索引值改变数组 d...

  • vue中$set的用法

    $set用于更新数组: $set用于更新对象:

  • vue.set()

    vue为了更加简洁,当data的数据是数组或者对象时,动态的添加或删除,视图将不会更新Vue.set()可以用来设...

  • Vue 监听不到属性变化

    1、通过vue的this.$set(object,key,value)方法,这种只能监听到新增对象,如果更新对象,...

  • vue中使用 elemenutUi 时间组件赋值后无法重新更改

    赋值之后不可修改 $set 赋值(可修改) set用法 我这个获取的时间是数组格式,Vue 不能检测数组的变动,当...

  • vue强制更新

    使用update this.$forceUpdate(),强制视图更新 用vue.set this.$set(th...

  • Vue学习笔记(6)-触发视图更新

    Vue对一些方法进行了包装和变异,以后数组通过这些方法进行数组更新,会出发视图的更新。这些方法如下: push()...

  • 响应式对象添加

    响应式数据中对于对象新增/删除属性以及数组的下标访问修改和添加数据等的变化观测不到。通过Vue.set以及修改数组...

网友评论

      本文标题:vue通过$set更新数组

      本文链接:https://www.haomeiwen.com/subject/ubamzdtx.html