UNPKG

wangbd-myui

Version:

MY前端基础框架核心组件库

64 lines (56 loc) 1.59 kB
/** * 缓存操作模块,提供sessionStorage和localStorage操作 * @module $ui/utils/storage * @author 陈华春 */ /** * sessionStorage * @const * @type {Storage} */ export const SESSION = window.sessionStorage || {} /** * localStorage * @type {Storage} */ export const LOCAL = window.localStorage || {} /** * 保存缓存 * @param {string} key 缓存key * @param {String|Object|Array} value 缓存值,对象、数组类型自动JSON.stringify成字符串 * @param {Storage} [storage=sessionStorage] 存储方式 SESSION 或 LOCAL */ export function save(key, value, storage = SESSION) { const str = typeof value === 'object' ? JSON.stringify(value) : value storage.setItem(key, str) } /** * 获取缓存 * @param {string} key 缓存key * @param {Storage} [storage=sessionStorage] 存储方式 SESSION 或 LOCAL * @returns {String|Object|Array} */ export function get(key, storage = SESSION) { const info = storage.getItem(key) if (info) { if (typeof info === 'object') return info const regex = /^({[\W\w]*})|(\[[\W\w]*])$/ return regex.test(info) ? JSON.parse(info) : info } return null } /** * 删除缓存 * @param {string} key 缓存key * @param {Storage} [storage=sessionStorage] 存储方式 SESSION 或 LOCAL */ export function remove(key, storage = SESSION) { storage.removeItem(key) } /** * 删除全部缓存 * @param {Storage} [storage=sessionStorage] 存储方式 SESSION 或 LOCAL */ export function clear(storage = SESSION) { storage.clear() }