@minisss/sessionstorage
Version:
A Window sessionstorage Manager Lib
101 lines (78 loc) • 3.4 kB
Markdown
@minisss/sessionstorage 是一个专为浏览器环境设计的轻量级本地存储库,旨在简化对 sessionstorage 的操作,同时提供丰富的功能和更好的开发体验。
- ✅ 支持对象存储
- ✅ 支持过期机制
- ✅ 自定义前缀
- ✅ 友好的 TS 类型提示(全局定义 IMSSessionStorageData 定义即可)
- ✅ 支持 ESM CJS UMD
- 🤡 支持广泛浏览器
```bash
pnpm i @minisss/sessionstorage
yarn add @minisss/sessionstorage
npm install @minisss/sessionstorage
bun install @minisss/sessionstorage
```
```js
import MLS from "@minisss/sessionstorage";
MLS.set("key", "val");
console.log(MLS.get("key"));
```
```js
const MLS = require("@minisss/sessionstorage");
MLS.set("key", "val");
console.log(MLS.get("key"));
```
```html
// UMD
<script src="https://unpkg.com/@minisss/sessionstorage@1.0.5"></script>
<script>
console.log("MLS 包对象: ", MLS) MLS.set('key', 'val');
console.log(MLS.get('key')) console.log(MLS.has('key'));
</script>
```
```html
<script type="module">
import MLS from "https://unpkg.com/@minisss/sessionstorage@1.0.5/out/index.esm.js";
console.log("MLS 包对象: ", MLS) MLS.set('key', 'val');
console.log(MLS.get('key')) console.log(MLS.del('key'));
console.log(MLS.has('key'));
</script>
```
| 名称 | 描述 | 参数 | 返回值 |
| --------- | -------------- | ---------------------------------------- | --------- |
| VERSION | 版本信息 | | string |
| length | 据项数量 | | number |
| isSupport | 是否支持 | | boolean |
| key | 获取 key | key(idx:number) | any |
| get | 获取 | get(key:string, config?:Config) | any |
| set | 设置 | set(key:string, val:any, config?:Config) | undefined |
| del | 删除 | del(key:string, config?:Config) | undefined |
| clear | 清除本地数据 | clear() | undefined |
| has | 判断 | has(key:string, config?:Config) | boolean |
| create | 创建实例(推荐) | create(config?:Config) | 实例对象 |
| 名称 | 描述 | 数据类型 | 默认值 |
| ------- | ---------------------------- | -------- | --------- |
| maxAge | 过期时间,单位为秒 | number | undefined |
| expires | 过期时间(maxAge会覆盖此参数) | Date | undefined |
| prefix | 自定义 key 前缀 | string | '' |
```js
// 例如: 在 types/xxx.d.ts | global.d.ts 或某个 .d.ts 文件中定义 IMSSessionStorageData 类型接口
interface IMSSessionStorageData {
name:string
age:number
}
// 将 types/xxx.d.ts 加入到 tsconfig.json includes 中即可获得自定义类型提示功能
```