下面我就為大家分享一篇vue將物件新增的屬性加入偵測序列的方法,具有很好的參考價值,希望對大家有幫助。
vue中將物件中新增的屬性增加到偵測序列中
deepCopy(o1, o2) { // 将o2的内容拷贝给data中的o1 var key, i if (o2 instanceof Array) { for (i = 0; i < o2.length; i++) { if (o2[i] instanceof Array) { this.$set(o1, i, []) this.deepCopy(o1[i], o2[i]) } else if (o2[i] instanceof Object) { this.$set(o1, i, {}) this.deepCopy(o1[i], o2[i]) } else { this.$set(o1, i, o2[i]) } } } else if (o2 instanceof Object) { for (key in o2) { if (o2[key] instanceof Array) { this.$set(o1, key, []) this.deepCopy(o1[key], o2[key]) } else if (o2[key] instanceof Object) { this.$set(o1, key, {}) this.deepCopy(o1[key], o2[key]) } else { this.$set(o1, key, o2[key]) } } } else { o1 = o2 } }
由於Vue 不允許動態新增根級響應式屬性,所以你必須在初始化實例前聲明根級響應式屬性,哪怕只是一個空值
如果一個屬性沒有事先聲明,後面再增加,他不能檢測到變化,對於一些固定的結構,是可以偵測到變化的。例如我知道一個obj裡面必然有key1、key2屬性,我可以事先初始化。如果這些東西是動態的,我沒辦法事先聲明。後面再增加,vue沒辦法偵測到變化了。
這時將你已經在data中宣告的變數和你要賦給這個變數的值作為參數傳進該函數就行了
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
#
以上是在vue中將物件新增的屬性加入檢測序列的方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!