共计 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);`