// localStorage.js const Storage = { // 设置缓存 set(key, value) { if (key && value !== undefined) { // 如果 value 是对象或数组,转成 JSON 字符串 if (typeof value === 'object') { value = JSON.stringify(value); } localStorage.setItem(key, value); } else { console.warn("Invalid key or value"); } }, // 获取缓存 get(key) { if (key) { const value = localStorage.getItem(key); if (value) { try { // 尝试解析 JSON 格式的数据 return JSON.parse(value); } catch (e) { // 如果解析失败,直接返回原始字符串 return value; } } return null; // 如果没有找到缓存项 } return null; }, // 删除缓存 remove(key) { if (key) { localStorage.removeItem(key); } }, // 清空所有缓存 clear() { localStorage.clear(); }, // 判断缓存是否存在 exists(key) { return localStorage.getItem(key) !== null; }, // 获取缓存的所有键 getAllKeys() { return Object.keys(localStorage); }, // 设置过期时间,单位:秒 setWithExpire(key, value, expireTimeInSec) { if (expireTimeInSec && expireTimeInSec > 0) { const expireDate = new Date().getTime() + expireTimeInSec * 1000; const data = { value: value, expireDate: expireDate, }; this.set(key, data); } else { console.warn("Invalid expire time"); } }, // 获取带过期时间的缓存 getWithExpire(key) { const data = this.get(key); if (data && data.expireDate && new Date().getTime() < data.expireDate) { return data.value; } else { // 如果缓存过期或数据不存在,则返回 null this.remove(key); return null; } }, }; // 导出 Storage 对象 export default Storage;