用localstorage存储购物车数据实战

最近做了一个商城项目,那肯定要做个购物车的嘛,于是我就想用localstorage存储商品,以便用户下次进入网页还可以看到自己收藏过的商品。业务方面,就保存商品数量、商品id和商品详情就好了。

接下来是项目实战

// 加购物车
  let k = 0; // 定义一个参数,用在循环中计算是否有这个商品id,如果没有,就把商品添加到gifts中,如果有,那这个商品的num增加
  let gift = {
    id: this.giftDetail.goods_id,
    gift: this.giftDetail,
    num: this.num
  };
  let gifts = localStorage.getItem("gifts")
    ? JSON.parse(localStorage.getItem("gifts"))
    : [];
  for (let i = 0; i < gifts.length; i++) {
    let item = gifts[i];
    if (item.id === gift.id) {
      item.num += gift.num;
    } else {
      k = k + 1;
    }
  }
  if (k === gifts.length) {
    gifts.push(gift);
  }

 localStorage.setItem("gifts", JSON.stringify(gifts));

注意点:

  1. 数组存localstorage是需要序列化的,否则会自动调用toString()方法。
  2. 需要用k来计算是否有这个商品是否存在。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容