- 🌈 支持命名空间
- 📦 同时支持
localStorage
、sessionStorage
、cookie
,并提供一致性 API - 🛡 使用 TypeScript 开发,提供完整的类型定义文件。
pnpm i @pansy/store
import { Store } from '@pansy/store';
const store = new Store();
// 基本方法
store.setItem('foo', 'bar');
store.setItem('abc', 'xyz');
store.getItem('foo'); // return bar
store.removeItem('foo');
// 高级方法
store.check('local'); // 测试 localStorage 是否可用
import { Store } from '@pansy/store';
const store = new Store();
// 存储在 cookie 中
store.setItem('foo', 'bar', { 'storages': ['cookie'] });
// 存储在 localStorage 中
store.setItem('foo', 'bar', { 'storages': ['local'] });
// 首先尝试将其存储到 cookie 中,如果不能则存储到 localStorage 中
store.setItem('foo', 'bar', { 'storages': ['cookie', 'local'] });
import { Store } from '@pansy/store';
const store = new Store();
// 设置到默认命名空间
store.setItem('hello', 'world');
// 将数据存储在给定的命名空间下
store.setItem('hello', 42, { 'namespace': 'alt' });
basil.setItem('abc', 'def', { 'namespace': 'alt' });
store.getItem('hello'); // return 'world'
store.getItem('hello', { 'namespace': 'alt' }); // return 42
{
// 存储数据的命名空间
// default: 'b45i1'
namespace: string;
// 指定所有支持的存储和优先级顺序
// default: ['local', 'cookie', 'session', 'memory']
storages: ('local' | 'cookie' | 'session' | 'memory')[];
// cookie 过期时间
// default: 365
expires: number;
// 用于分隔命名空间和键名的值
// default: '/'
keyDelimiter: string;
}