首頁 >web前端 >js教程 >在vue中將物件新增的屬性加入檢測序列的方法有哪些?

在vue中將物件新增的屬性加入檢測序列的方法有哪些?

亚连
亚连原創
2018-06-04 16:38:111726瀏覽

下面我就為大家分享一篇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無法偵測陣列或物件變動方面問題?

在vue中如何實現watch監聽物件及對應值的變化

##watch監聽路由變更與watch監聽物件(詳細教學)

#

以上是在vue中將物件新增的屬性加入檢測序列的方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn