vue中检测对象和数组值变化的问题
生活随笔
收集整理的這篇文章主要介紹了
vue中检测对象和数组值变化的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天工作中遇到改變vue ?data中某個對象的值,卻無法觸發(fā)視圖更新的問題??戳丝垂俜轿臋n,怎么解決的呢?
1、檢測對象的變化
受現(xiàn)代 JavaScript 的限制(以及廢棄?Object.observe),Vue?不能檢測到對象屬性的添加或刪除。由于 Vue 會在初始化實例時對屬性執(zhí)行?getter/setter?轉化過程,所以屬性必須在?data?對象上存在才能讓 Vue 轉換它,這樣才能讓它是響應的。
使用Object.assign()?或?_.extend()?方法來添加屬性
// 代替 `Object.assign(this.someObject, { a: 1, b: 2 })` this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })2. 檢測數(shù)組的變化
?由于 JavaScript 的限制, Vue 不能檢測以下變動的數(shù)組:
(1)、當你利用索引直接設置一個項時,例如:?vm.items[indexOfItem] = newValue
(2)、當你修改數(shù)組的長度時,例如:?vm.items.length = newLength
如何解決上述問題呢?
方法1:
// Vue.set Vue.set(example1.items, indexOfItem, newValue) 方法2: // Array.prototype.splice example1.items.splice(indexOfItem, 1, newValue)?
轉載于:https://www.cnblogs.com/running1/p/7301687.html
總結
以上是生活随笔為你收集整理的vue中检测对象和数组值变化的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 静态类和非静态类(实例类)
- 下一篇: 【Java】JavaIO(一)、基础知识