vue的数组如何存储数据
vue 和 angular 還有有些區(qū)別的,
比如,vue中的數(shù)組數(shù)據(jù)改變后,view并沒(méi)有發(fā)生改變,angular就不會(huì)這樣。
所以VUE 在數(shù)組擴(kuò)展方法中提供以了一個(gè)新的API arr.$set(index, value);
此方法通過(guò)索引index設(shè)置數(shù)組元素來(lái)觸發(fā)視圖的跟新。
例如:vue 中的
data {
? ? return {
? ?? ? aa: [{name:jxj,age:25},{name:jxj2,age:252},{name:jxj3,age:253}]? ?}
}
view : 中??<p>my name{{aa[0].name}},my age is {{aa[0].age}}</p>
(1).當(dāng)我們直接用索引設(shè)置元素aa[i].name 和 aa[i].age時(shí),view不會(huì)發(fā)生改變。
這是vue的一個(gè)缺點(diǎn),為了彌補(bǔ),vue中提供了$set()方法,vue中還提供了$remove方法,直接刪除數(shù)組中的指定元素。this.items.$remove(item)。
那么我們需要使用??aa.$set(0, Object.assign({},aa[0],{name:'jxj2',age:26})),才可以觸發(fā)view的變換。
Object.assign()是ES6中對(duì)象的新方法,合并對(duì)象,將原對(duì)象中所以可枚舉的屬性,復(fù)制到目標(biāo)對(duì)象中。
這里Object.assign({},aa[0],{name:'jxj2',age:26}) 目標(biāo)對(duì)象是個(gè)空對(duì)象,將對(duì)象中{name:'jxj2',age:26}修改的屬性合并到源對(duì)象aa[0]中,最終又合并到空對(duì)象中。形成一個(gè)新對(duì)象
{name:'jxj2',age:26}。
ps:和jq 的extend()原理一樣的啊
總結(jié)
以上是生活随笔為你收集整理的vue的数组如何存储数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分享一个 Trait 来易用 Larav
- 下一篇: 跑数据脚本