共计 1176 个字符,预计需要花费 3 分钟才能阅读完成。
总结:
1. 数组更改值或者增加删除值,不会触发更新
2. 对象更改值可触发更新,增加或者删除属性不会触发更新。
一、 纯数组 ——-showArr:[true,true]
-
数组中元素直接赋值,— 不触发刷新
this.showArr[0]=!this.showArr[0];
-
数组修改后整体赋值,— 不触发刷新
var parr=this.showArr; parr[0]=!parr[0]; this.showArr=parr;
-
数组重新复制出一份新的,修改后整体赋值,— 可触发刷新
var parr=this.showArr.slice(0); parr[0]=!parr[0]; this.showArr=parr;
-
用 $set 赋值,— 可触发刷新
this.$set(this.showArr,0,!this.showArr[0])
二、纯对象 ——-showArr:{‘showBool’:true}
-
数组中元素直接赋值,— 可触发刷新
this.showArr['showBool']=!this.showArr['showBool'];
-
数组修改后整体赋值,— 可触发刷新
var parr=this.showArr; parr['showBool']=!parr['showBool']; this.showArr=parr;
-
数组重新复制出一份新的,修改后整体赋值,— 可触发刷新
var parr=this.showArr.slice(0); parr['showBool']=!parr['showBool']; this.showArr=parr;
-
用 $set 赋值,— 可触发刷新
this.$set(this.showArr,'showBool',!this.showArr['showBool']);
三、对象数组 ——-showArr:[{‘showBool’:true},{‘showBool’:true}]
-
数组中元素直接赋值,— 可触发刷新
this.showArr[0]['showBool']=!this.showArr[0]['showBool'];
-
数组修改后整体赋值,— 可触发刷新
var parr=this.showArr; parr[0]['showBool']=!parr[0]['showBool']; this.showArr=parr;
-
数组重新复制出一份新的,修改后整体赋值,— 可触发刷新
var parr=this.showArr.slice(0); parr[0]['showBool']=!parr[0]['showBool']; this.showArr=parr;
-
用 $set 赋值,— 可触发刷新
this.$set(this.showArr[0],'showBool',!this.showArr[0]['showBool']);
正文完