이번에는 storejs에서 얻은 데이터를 vue에서 처리할 때 주의 사항을 알려드리겠습니다.
구체적인 코드는 다음과 같습니다.
export default { data(){ return { shopList:{}, isEmpty:false, //判断购物车中是否有存在内容 } }, created(){ if(!store.get('?shopCar')){ this.isEmpty = true; }else{ //对数据处理 将商店中名中的地址分离出来 this.shopList = store.get('shopCar'); console.log(this.shopList) } } }
지금 인쇄해 보세요:
this.shopList 표시된 결과는 {ob: Observer}
ob: Observer}
虽然可以在vue中直接使用如下:
<ul> <li v-for = "list in shopList" :key = "list.id"> {{list}} </li> </ul>
但是如果此时我想对this.shopList中的数据进行处理,就会出现问题,此时如果你想遍历循环该数据,就会出现意想不到的效果,因为此时打印 this.shopList.length
显示出来的结果为undefined。
遍历对象有几种方法:
1,最常用的 for循环 ,但此时length为undefined,该方法不可用;
2,for in 同上原因不可使用
3. jquery中也有遍历对象的方法 $.each(this.shopList,function(n,i){})
created(){ if(!store.get('?shopCar')){ this.isEmpty = true; }else{ //对数据处理 将商店中名中的地址分离出来 var shopList = store.get('shopCar') $.each(shopList,function(n,i){ //处理数据。。。。。 }) this.shopList = shopList; console.log(this.shopList) } }
this.shopList를 에서 인쇄하기 때문에 예상치 못한 결과가 발생합니다. 이번에는 .length
로 표시된 결과가 정의되지 않았습니다.
객체를 탐색하는 방법에는 여러 가지가 있습니다. :
1, 가장 일반적으로 사용되는 for 루프
이지만 현재 길이가 정의되지 않았으므로 이 방법을 사용할 수 없습니다. 2. 위와 같은 이유로 in을 사용할 수 없습니다3 jquery에는 객체를 탐색하는 메서드도 있습니다$.each(this.shopList,function(n,i){})
세 번째 메서드를 찾을 수 있습니다 이 데이터를 탐색하는 방법을 사용하면 데이터를 얻을 수 있습니다. 데이터가 처리됩니다. 하지만 this.shopList 개체에 다른 개체 레이어가 포함되어 있으면 어떻게 될까요? .each()에 .each()의 또 다른 레이어가 포함되고 .each()의 또 다른 레이어가 포함되어 있다면 이 문제가 해결되지 않을까요? 이 방법 외에도 더 좋은 방법이 있습니다.
rrreee
this.shopList에 데이터를 직접 할당하면 왜 데이터를 처리할 수 없나요?
이유는 this.shopList에 데이터를 할당하면 Vue 데이터의 양방향 바인딩이 구현되기 때문입니다.
위 내용은 vue는 storejs에서 얻은 데이터를 처리합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!