溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue將對(duì)象新增的屬性添加到檢測序列的方法

發(fā)布時(shí)間:2020-08-29 14:15:40 來源:腳本之家 閱讀:111 作者:twmay006 欄目:web開發(fā)

vue中將對(duì)象中新增的屬性增加到檢測序列中

deepCopy(o1, o2) { // 將o2的內(nèi)容拷貝給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 不允許動(dòng)態(tài)添加根級(jí)響應(yīng)式屬性,所以你必須在初始化實(shí)例前聲明根級(jí)響應(yīng)式屬性,哪怕只是一個(gè)空值

如果一個(gè)屬性沒有事先聲明,后面再增加,他不能檢測到變化,對(duì)于一些固定的結(jié)構(gòu),是可以檢測到變化的。比如我知道一個(gè)obj里面必然有key1、key2屬性,我可以事先初始化。如果這些東西是動(dòng)態(tài)的,我沒法事先聲明。后面再增加,vue沒法檢測到變化了。

這時(shí)將你已經(jīng)在data中聲明的變量和你要賦給這個(gè)變量的值作為參數(shù)傳進(jìn)該函數(shù)就行了

以上這篇vue將對(duì)象新增的屬性添加到檢測序列的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI