vue改變對象或數組時的刷新機制總結

總結:
1.數組更改值,不會觸發更新;增長刪除值可觸發更新。
2.對象更改值可觸發更新,增長或者刪除屬性不會觸發更新。
3.對象數組:數組中的對象更改值會觸發更新。數組


1、純數組-------showArr:[true,true]this


  1. 數組中元素直接賦值,---不觸發刷新code

    this.showArr[0]=!this.showArr[0];
  2. 數組修改後總體賦值,---不觸發刷新對象

    var parr=this.showArr;
          parr[0]=!parr[0];
          this.showArr=parr;
  3. 數組從新複製出一份新的,修改後總體賦值,---可觸發刷新總結

    var parr=this.showArr.slice(0);
          parr[0]=!parr[0];
          this.showArr=parr;
  4. 用$set賦值,---可觸發刷新co

    this.$set(this.showArr,0,!this.showArr[0])

2、純對象-------showArr:{'showBool':true}let

  1. 對象中元素直接賦值,---可觸發刷新push

    this.showArr['showBool']=!this.showArr['showBool'];
  2. 對象修改後總體賦值,---可觸發刷新delete

    var parr=this.showArr;
           parr['showBool']=!parr['showBool'];
           this.showArr=parr;
  3. 用$set賦值,---可觸發刷新

    this.$set(this.showArr,'showBool',!this.showArr['showBool']);

3、 對象數組-------showArr:[{'showBool':true},{'showBool':true}]

  1. 數組中元素直接賦值,---可觸發刷新

    this.showArr[0]['showBool']=!this.showArr[0]['showBool'];
  2. 數組修改後總體賦值,---可觸發刷新

    var parr=this.showArr;
           parr[0]['showBool']=!parr[0]['showBool'];
           this.showArr=parr;
  3. 數組從新複製出一份新的,修改後總體賦值,---可觸發刷新

    var parr=this.showArr.slice(0);
           parr[0]['showBool']=!parr[0]['showBool'];
           this.showArr=parr;
  4. 用$set賦值,---可觸發刷新

    this.$set(this.showArr[0],'showBool',!this.showArr[0]['showBool']);

4、數組或對象增長刪除值:

this.numArr.push(4);//---(數組增長元素)可觸發刷新
  this.numArr.splice(1,1);//---(數組刪除元素)可觸發刷新
  this.numObj.m=4;//---(對象增長屬性)不觸發刷新
  delete this.numObj.y;//---(對象刪除屬性)不觸發刷新
相關文章
相關標籤/搜索