浏览器本地缓存封装


本地缓存封装类

class StorageUtil {
    /**
     * 设置存储值
     * @param {string} key 键名
     * @param {any} value 存储的值
     * @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
     */
    static setItem(key, value, useSession = false) {
        const storage = useSession ? sessionStorage : localStorage;
        storage.setItem(key, JSON.stringify(value));
    }

    /**
     * 获取存储值
     * @param {string} key 键名
     * @param {any} [defaultValue=null] 默认值,如果键不存在则返回此值
     * @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
     * @returns {any} 存储的值或默认值
     */
    static getItem(key, defaultValue = null, useSession = false) {
        const storage = useSession ? sessionStorage : localStorage;
        const value = storage.getItem(key);
        if (value === null) return defaultValue;
        try {
            return JSON.parse(value);
        } catch (error) {
            console.error('Error parsing stored value:', error);
            return defaultValue;
        }
    }

    /**
     * 删除指定键的存储值
     * @param {string} key 键名
     * @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
     */
    static removeItem(key, useSession = false) {
        const storage = useSession ? sessionStorage : localStorage;
        storage.removeItem(key);
    }

    /**
     * 清空所有存储
     * @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
     */
    static clear(useSession = false) {
        const storage = useSession ? sessionStorage : localStorage;
        storage.clear();
    }
}

// 导出工具类
export default StorageUtil;

使用示例

// 设置存储值   
StorageUtil.setItem('name', '张三');

// 获取存储值
const name = StorageUtil.getItem('name', '默认值');
console.log(name); // 张三

// 删除指定键的存储值
StorageUtil.removeItem('name');


// 清空所有存储
StorageUtil.clear();

文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录