12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // 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;
-
|