物件
對於已經建立的例項,vue 不能動態的新增根級別響應式屬性
this.$set(this.info, 'age', 27)
複製程式碼
有時可能需要為已有物件賦予多個新的屬性
this.info = Object.assign({}, this.info, {
age: 27,
name: 'xiaoyu'
})
複製程式碼
陣列
由於JavaScript的限制,Vue不能檢測以下變動的陣列:
- 當使用索引直接改變或者設定一個項時,例如:this.items[index] = newvalue。
- 當修改陣列的長度時,例如: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)
複製程式碼