uni-app 本地缓存的购物车

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app 本地缓存的购物车

本地缓存的 购物车,uni.getstorage, uni.setstorage

1 回复

在uni-app中,本地缓存是存储购物车数据的一种有效方式。uni-app 提供了 uni.setStorageuni.getStorage 等API,可以方便地在本地存储和读取数据。以下是一个简单的购物车本地缓存实现的代码案例。

1. 初始化购物车数据

首先,我们定义一个初始化购物车的函数,用于设置初始数据(如果本地没有缓存数据)。

function initCart() {
    const cart = uni.getStorageSync('cart') || [];
    return cart;
}

2. 添加商品到购物车

接下来,我们定义一个函数来添加商品到购物车。这里假设每个商品对象包含 idquantity 属性。

function addToCart(product) {
    let cart = initCart();
    const productIndex = cart.findIndex(item => item.id === product.id);

    if (productIndex !== -1) {
        cart[productIndex].quantity += product.quantity;
    } else {
        cart.push({ ...product });
    }

    uni.setStorageSync('cart', cart);
}

3. 从购物车移除商品

定义一个函数来从购物车移除商品,可以通过商品ID来移除。

function removeFromCart(productId) {
    let cart = initCart();
    cart = cart.filter(item => item.id !== productId);
    uni.setStorageSync('cart', cart);
}

4. 获取购物车数据

定义一个函数来获取当前的购物车数据。

function getCart() {
    return initCart();
}

5. 示例使用

以下是如何使用上述函数的示例:

// 添加商品到购物车
const newProduct = { id: 1, name: 'Product A', quantity: 2 };
addToCart(newProduct);

// 获取购物车数据
const cartData = getCart();
console.log('Current Cart:', cartData);

// 从购物车移除商品
removeFromCart(1);

// 再次获取购物车数据
const updatedCartData = getCart();
console.log('Updated Cart:', updatedCartData);

总结

上述代码展示了如何使用uni-app的本地存储API来实现一个简单的购物车功能。通过 uni.setStorageSyncuni.getStorageSync 方法,我们可以方便地在本地缓存购物车数据,从而实现数据的持久化存储。根据实际需求,你可以进一步扩展这些函数,比如添加商品的价格计算、购物车数据的持久化更新等。

回到顶部