




















最近完善了 stokado ,用来解决 localStorage / sessionStorage 用起来的几个老问题,分享给大家看看。
它本质是给任意 storage 对象套一层 Proxy ,主要做了这几件事:
number 取出还是 number,存 Date 取出还是 Date,不用每次手动 JSON.parse 再转类型。on/once/off 监听某个 key 的变化,不用自己写 addEventListener('storage')(原生那个还监听不到本标签页)。setItem(k, v, { expires }) 自动过期,{ disposable: true } 读一次就失效。安装:
npm install stokado
最小示例:
import { createProxyStorage } from 'stokado'
const storage = createProxyStorage(localStorage)
// 类型保留:取出来还是 number / Date ,不是字符串
storage.count = 0
storage.count === 0 // true
storage.createdAt = new Date('2024-01-01')
storage.createdAt.getTime() // 正常可用
// 同标签页响应式订阅
storage.on('token', (newVal, oldVal) => {
console.log('token changed:', oldVal, '->', newVal)
})
// 过期 & 一次性值
storage.setItem('token', 'abc', { expires: Date.now() + 3600_000 })
storage.setItem('flash', 'data', { disposable: true })
storage.flash // 'data'
storage.flash // undefined (读过一次即失效)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。