Vue 2.0陣列和物件更新後DOM不更新問題的解決方法。

大喻喻發表於2018-10-30

物件

對於已經建立的例項,vue 不能動態的新增根級別響應式屬性

this.$set(this.info, 'age', 27)
複製程式碼

有時可能需要為已有物件賦予多個新的屬性

this.info = Object.assign({}, this.info, {
  age: 27,
  name: 'xiaoyu'
})
複製程式碼

陣列

由於JavaScript的限制,Vue不能檢測以下變動的陣列:

  1. 當使用索引直接改變或者設定一個項時,例如:this.items[index] = newvalue。
  2. 當修改陣列的長度時,例如:this.items.lenght = newValue。

第一類解決辦法:

// Vue.set
this.$set(this.items, indexOfItem, newValue)

// Array.prototype.splice
this.items.splice(indexOfItem, 1, newValue)
複製程式碼

第二類解決辦法:

vm.items.splice(newLength)
複製程式碼

原文參考:blog.csdn.net/starleejay/…

相關文章