一个支持命名空间前缀和自动编解码的 JavaScript Storage 封装库。
- 命名空间隔离:通过前缀实现多实例数据隔离,避免 key 冲突
- 自动编解码:自动 JSON.stringify/JSON.parse,支持任意数据类型
- 灵活引擎:默认使用 localStorage,可切换为 sessionStorage 或自定义存储引擎
- 链式调用:setItem、removeItem、clear 等方法支持链式操作
- TypeScript 支持:完整的类型声明
- 零依赖:轻量级,不依赖任何第三方库
- UMD/ESM 双格式:支持浏览器直接引入和模块化引入
npm i @axolo/storageimport AxoloStorage from '@axolo/storage';
// 创建带前缀的存储实例
const store = new AxoloStorage('app:');
// 存储数据
store.setItem('user', { id: 1, name: 'axolo' });
store.setItem('token', 'abc123');
store.setItem('count', 100);
// 读取数据
const user = store.getItem('user'); // { id: 1, name: 'axolo' }
const token = store.getItem('token'); // 'abc123'
const count = store.getItem('count'); // 100
store.has('user'); // true
store.keys(); // ['user', 'token', 'count']
store.removeItem('count');
store.clear();| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
prefix |
string |
命名空间前缀,所有 key 会自动拼接此前缀 | |
engine |
Storage |
localStorage |
存储引擎,可选sessionStorage |
存储数据,自动 JSON 序列化。
读取数据,自动 JSON 反序列化。
移除指定 key。
返回所有带当前前缀的 key 列表(已去除前缀)。
检查 key 是否存在。
清空当前前缀下的所有数据,不影响其他前缀的数据。
获取当前前缀下所有存储内容的总字符长度(基于 JSON 序列化后的字符串)。