存储(Storage)
提供 localStorage/sessionStorage 的安全方法与 TTL 能力,以及 Cookie 常用操作。
使用指引(做什么、何时用)
- 业务状态持久化:用
set/get保存小型对象(自动 JSON 序列化/反序列化) - 登录态/活动配置:用
setWithTTL/getWithTTL设置过期时间,刷新后仍可读,到点自动失效 - 会话数据:用
setSession/getSession在单次打开期间保存(关闭浏览器标签即丢失) - 跨域/服务端读取:用
Cookie存储少量关键值(注意隐私与安全策略) - 清理:
remove/clear与对应的Session/Cookie方法便于统一清理
Local Storage
StorageUtils.set(key, value)StorageUtils.get(key)StorageUtils.remove(key)StorageUtils.clear()
ts
import { StorageUtils } from 'nex-lib'
StorageUtils.set('a', { x: 1 })
StorageUtils.get('a')json
{ "x": 1 }TTL(过期)存储
StorageUtils.setWithTTL(key, value, ttlMs)StorageUtils.getWithTTL(key)
ts
StorageUtils.setWithTTL('b', { y: 2 }, 1000)
StorageUtils.getWithTTL('b')json
{ "y": 2 }Session Storage
StorageUtils.setSession(key, value)StorageUtils.getSession(key)StorageUtils.removeSession(key)StorageUtils.clearSession()
Cookie
StorageUtils.setCookie(name, value, options)支持days/ms/path/domain/secure/sameSiteStorageUtils.getCookie(name)StorageUtils.removeCookie(name, options)
ts
StorageUtils.setCookie('k', 'v', { ms: 1000 })
StorageUtils.getCookie('k')
StorageUtils.removeCookie('k')text
v
null常见场景
- 将“3 天后的目标时间”保存为秒级时间戳:
setWithTTL('holiday_target', targetSeconds, 24*60*60*1000) - 登录 token:
setWithTTL('token', token, 86400000),读取用getWithTTL('token')
注意
- Cookie 体积小且会随请求发送到服务器,适用于少量必要信息;避免存放隐私或大数据。
- 设置
sameSite/secure等选项以符合现代浏览器安全要求。