이 글은 주로 Vue가 storejs에서 얻은 데이터를 처리할 때 발생하는 여러 가지 문제에 대한 요약을 소개합니다. 필요한 친구가 있으면 참고할 수 있습니다.
구체적인 코드는 다음과 같습니다.
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를 사용하세요. 이때 데이터를 순회하고 반복하려고 하면
this.shopList.length
를 인쇄할 때 표시되는 결과가 다음과 같기 때문에 예상치 못한 결과가 발생합니다. 한정되지 않은. .
객체를 순회하는 방법에는 여러 가지가 있습니다:
1, 가장 일반적으로 사용되는 for 루프이지만 현재로서는 길이가 정의되지 않았으며 이는
2, 위와 같은 이유로 in을 사용할 수 없습니다
3. jquery $.each(this.shopList,function(n,i)에도 객체를 탐색하는 방법이 있습니다. ){})
세 번째 방법은 데이터를 순회한 다음 데이터를 처리할 수 있다는 것을 알 수 있습니다.
하지만 this.shopList 개체에 다른 개체 레이어가 포함되어 있으면 어떻게 될까요? .each()에 .each()의 또 다른 레이어가 포함되고 .each()의 또 다른 레이어가 포함되어 있다면 이 문제가 해결되지 않을까요? 이 방법 외에도 더 좋은 방법이 있습니다.
rrreee
더 간단하고 직접적인 방법은 먼저 데이터를 변수에 할당하고 데이터를 원하는 형식으로 처리한 다음 이 변수에 복사하는 것입니다. .shopList이면 충분합니다.
this.shopList에 데이터를 직접 할당하면 왜 데이터를 처리할 수 없나요?
이유는 this.shopList에 데이터를 할당하면 Vue 데이터의 양방향 바인딩이 구현되기 때문입니다. 위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다.
위 내용은 vue가 storejs로 얻은 데이터를 처리할 때 발생하는 여러 문제에 대한 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!