vue的數組如何存儲數據


vue 和 angular 還有有些區別的,
比如,vue中的數組數據改變后,view並沒有發生改變,angular就不會這樣。

所以VUE 在數組擴展方法中提供以了一個新的API arr.$set(index, value);
此方法通過索引index設置數組元素來觸發視圖的跟新。

例如: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).當我們直接用索引設置元素aa[i].name 和 aa[i].age時,view不會發生改變。
這是vue的一個缺點,為了彌補,vue中提供了$set()方法,vue中還提供了$remove方法,直接刪除數組中的指定元素。this.items.$remove(item)。

那么我們需要使用  aa.$set(0, Object.assign({},aa[0],{name:'jxj2',age:26})),才可以觸發view的變換。


Object.assign()是ES6中對象的新方法,合並對象,將原對象中所以可枚舉的屬性,復制到目標對象中。

這里Object.assign({},aa[0],{name:'jxj2',age:26}) 目標對象是個空對象,將對象中{name:'jxj2',age:26}修改的屬性合並到源對象aa[0]中,最終又合並到空對象中。形成一個新對象
{name:'jxj2',age:26}。

ps:和jq 的extend()原理一樣的啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM