vue改变对象或数组时的刷新机制总结

总结:
1.数组更改值或者增加删除值,不会触发更新
2.对象更改值可触发更新,增加或者删除属性不会触发更新。


一、纯数组——-showArr:[true,true]


  1. 数组中元素直接赋值,—不触发刷新

          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赋值,—可触发刷新

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

二、纯对象——-showArr:{‘showBool’:true}

  1. 数组中元素直接赋值,—可触发刷新

           this.showArr['showBool']=!this.showArr['showBool'];
    
  2. 数组修改后整体赋值,—可触发刷新

           var parr=this.showArr;
           parr['showBool']=!parr['showBool'];
           this.showArr=parr;
    
  3. 数组重新复制出一份新的,修改后整体赋值,—可触发刷新

           var parr=this.showArr.slice(0);
           parr['showBool']=!parr['showBool'];
           this.showArr=parr;
  4. 用$set赋值,—可触发刷新

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

三、 对象数组——-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']);
    

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理