vue数组更新不渲染页面

原因:

由于 JavaScript 的限制,Vue 不能检测以下变动的数组:

  1. 当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue
  2. 当你修改数组的长度时,例如:vm.items.length = newLength

解决方案:

通过splice()方法,删除某个元素后,再添加一个元素,达到“赋值”的效果:

vm.items.splice(index, 1, newElement);

Vue可以监听数组的splice、push、unshift等方法调用正确更新View。

this.$set(this.arr,”key”, 111)

Vue.set( target , key , value)

    • target: 要更改的数据源(可以是一个对象或者数组)
    • key 要更改的具体数据 (索引)
    • value 重新赋的值

或者

this.$forceUpdate()    //强制刷新

发表评论