vue對storejs獲取的數(shù)據(jù)進行處理時遇到的幾種問題小結(jié)
具體代碼如下所示:
export default { data(){ return { shopList:{}, isEmpty:false, //判斷購物車中是否有存在內(nèi)容 } }, created(){ if(!store.get('?shopCar')){ this.isEmpty = true; }else{ //對數(shù)據(jù)處理 將商店中名中的地址分離出來 this.shopList = store.get('shopCar'); console.log(this.shopList) } } }
這個時候打印出來:
this.shopList 顯示的結(jié)果為 {ob: Observer}
雖然可以在vue中直接使用如下:
<ul> <li v-for = "list in shopList" :key = "list.id"> {{list}} </li> </ul>
但是如果此時我想對this.shopList中的數(shù)據(jù)進行處理,就會出現(xiàn)問題,此時如果你想遍歷循環(huán)該數(shù)據(jù),就會出現(xiàn)意想不到的效果,因為此時打印 this.shopList.length
顯示出來的結(jié)果為undefined。
遍歷對象有幾種方法:
1,最常用的 for循環(huán) ,但此時length為undefined,該方法不可用;
2,for in 同上原因不可使用
3. jquery中也有遍歷對象的方法 $.each(this.shopList,function(n,i){})
你會發(fā)先第三種可以遍歷這個數(shù)據(jù),那么就可以實現(xiàn)數(shù)據(jù)的處理了。
但是如果你的this.shopList這個對象中又包含了一層對象呢?.each()中再包含一層.each()中再包含一層.each(),不就可以解決這種問題了嗎?除了這種方法外,有種更好的辦法:
created(){ if(!store.get('?shopCar')){ this.isEmpty = true; }else{ //對數(shù)據(jù)處理 將商店中名中的地址分離出來 var shopList = store.get('shopCar') $.each(shopList,function(n,i){ //處理數(shù)據(jù)。。。。。 }) this.shopList = shopList; console.log(this.shopList) } }
更簡單直接的辦法是,將數(shù)據(jù)先賦值給一個變量,將數(shù)據(jù)處理為你想要的格式之后,再復制給this.shopList即可。
為什么我們直接將數(shù)據(jù)賦值給this.shopList就不可以對數(shù)據(jù)進行處理了呢?
原因是當你將數(shù)據(jù)賦值給this.shopList,即實現(xiàn)了vue的數(shù)據(jù)的雙向綁定。
總結(jié)
以上所述是小編給大家介紹的vue對storejs獲取的數(shù)據(jù)進行處理時遇到的幾種問題小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Vue實現(xiàn)數(shù)據(jù)導入的四種方法(resource、Axios、Fetch、Excel導入)
本文主要介紹了Vue實現(xiàn)數(shù)據(jù)導入的四種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07vue input 輸入校驗字母數(shù)字組合且長度小于30的實現(xiàn)代碼
這篇文章主要介紹了vue input 校驗字母數(shù)字組合且長度小于30的實現(xiàn)代碼,文章給大家補充介紹了在Vue.Js下使用el-input框只能輸入數(shù)字并限制位數(shù)并且限制中文輸入以及粘貼功能,感興趣的朋友跟隨腳本之家小編一起看看吧2018-05-05el-table樹形數(shù)據(jù)量過大,導致頁面卡頓問題及解決
這篇文章主要介紹了el-table樹形數(shù)據(jù)量過大,導致頁面卡頓問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04