关于前端:vue-对象数组刷新

4次阅读

共计 1219 个字符,预计需要花费 4 分钟才能阅读完成。

Vue.`set(vm.obj,‘cat’,‘xiaobai’`)
vm.$`set(vm.obj,‘cat2’,‘xiaobai2’“)

`# 倡议用以上的 2 种办法

Vue.delete(vm.obj,`’cat2′`)
vm.$delete(vm.obj,`’cat1′`)

总结:

1. 数组更改值或者减少删除值,不会触发更新。
2. 对象更改值可触发更新,减少或者删除属性不会触发更新。
3. 对象数组:数组中的对象更改值会触发更新。

一、纯数组 ——-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;`

用 $set 赋值,— 可触发刷新

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

三、对象数组 ——-showArr:[{‘showBool’:true},{‘showBool’:true}]

数组中元素间接赋值,— 可触发刷新

this`.showArr0=!this.showArr0;`

数组批改后整体赋值,— 可触发刷新

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.showArr0);`

正文完
 0