最近做了一个商城项目,那肯定要做个购物车的嘛,于是我就想用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));
注意点:
- 数组存localstorage是需要序列化的,否则会自动调用toString()方法。
- 需要用k来计算是否有这个商品是否存在。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。