import Cookies from 'js-cookie' enum storageType { localStorage = 'local', sessionStorage = 'session', Cookies = 'Cookies' } class UseStorage { /** * 数据存储 * @param key 存储key * @param value 存储值 * @param type 类型 * @param day 有效期 */ public setItem(key: string, value: any, type: storageType, day = 7) { switch (type) { case storageType.localStorage: localStorage.setItem(key, JSON.stringify(value)) break case storageType.sessionStorage: sessionStorage.setItem(key, JSON.stringify(value)) break case storageType.Cookies: Cookies.set(key, value, { expires: day }) break } } public getItem(key: string, type: storageType) { let res switch (type) { case storageType.localStorage: res = localStorage.getItem(key) break case storageType.sessionStorage: res = sessionStorage.getItem(key) break case storageType.Cookies: res = Cookies.get(key) break } if (res) { if (type === storageType.Cookies) { return res } return JSON.parse(res) } } public removeItem(key: string, type: storageType) { switch (type) { case storageType.localStorage: localStorage.removeItem(key) break case storageType.sessionStorage: sessionStorage.removeItem(key) break case storageType.Cookies: Cookies.remove(key) break } } public clear(type: storageType) { switch (type) { case 'local': localStorage.clear() break case 'session': sessionStorage.clear() break } } } export const useStorage = new UseStorage() export const useStorageType = storageType