Skip to content

存储(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()
  • StorageUtils.setCookie(name, value, options) 支持 days/ms/path/domain/secure/sameSite
  • StorageUtils.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 等选项以符合现代浏览器安全要求。

Released under the ISC License.