UNPKG

@shencom/utils-storage

Version:
274 lines (217 loc) 5.73 kB
# @shencom/utils-storage > Storage 工具,兼容小程序,Uniapp,Browser ## Install ```sh pnpm add @shencom/utils # or pnpm add @shencom/utils-storage ``` ## Basic Usage ```ts const storage = new ScStorageBase(StorageOption); ``` ## Option ```ts interface StorageOption { scid: string; get: (key: string) => string | null; set: (key: string, value: string) => void; remove: (key: string) => void; clear: () => void; keys: () => string[]; } ``` | 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------ | ---------------------- | -------- | ------ | ------ | | scid | 唯一标识符 | String | - | - | | get | 获取本地存储数据 | Function | - | - | | set | 设置本地存储数据 | Function | - | - | | remove | 移除指定本地存储数据 | Function | - | - | | clear | 清空本地存储数据 | Function | - | - | | keys | 获取本地存储所有的 key | Function | - | - | ## Methods **get** - 说明: 获取本地存储数据 - 类型: `get<T = any>(key: string): T | null` - 示例: ```ts const data = storage.get(key); ``` **set** - 说明: 设置本地存储数据 - 类型: `set(key: string, data: any, time?: number): void` - 参数: - `key`: 存储的 key - `data`: 存储的值 - `time`: 存储时间(单位为分钟),默认: `永久` - 示例: ```ts storage.set(key, data, 10); // 10分钟 storage.set(key, data); // 永久 ``` **remove** - 说明: 移除指定本地存储数据 - 类型: `remove(key: string): void` - 参数: - `key`: 存储的 key - 示例: ```ts storage.remove(key); ``` **clear** - 说明: 清空本地存储数据,默认保留 lasting 前缀字段数据 - 类型: `clear(isAll?: boolean): void` - 参数: - `isAll`: 是否全部清除,默认: `false` - 示例: ```ts storage.clear(); // 保留 lasting 前缀字段数据 storage.clear(true); // 全部清除 ``` **keys** - 说明: 获取本地存储所有的 key - 类型: `keys(): string[]` - 示例: ```ts const keys = storage.keys(); ``` **getUser** - 说明: 获取 `user_` 开头的数据 - 类型: `getUser<T = any>(key: string): T | null` - 参数: - `key`: 存储的 key - 示例: ```ts const data = storage.getUser(key); ``` **setUser** - 说明: 设置 `user_` 开头的数据 - 类型: `setUser(key: string, data: any, time?: number): void` - 参数: - `key`: 存储的 key - `data`: 存储的值 - `time`: 存储时间(单位为分钟),默认: `永久` - 示例: ```ts storage.setUser(key, data, 10); // 10分钟 storage.setUser(key, data); // 永久 ``` **removeUser** - 说明: 移除以 `user_` 开头的数据 - 类型: `removeUser(key: string): void` - 参数: - `key`: 存储的 key - 示例: ```ts storage.removeUser(key); ``` **clearUser** - 说明: 清除所有以 `user_` 开头的数据 - 类型: `clearUser(): void` - 示例: ```ts storage.clearUser(); ``` **getData** - 说明: 获取 `data_` 开头的数据 - 类型: `getData<T = any>(key: string): T | null` - 参数: - `key`: 存储的 key - 示例: ```ts const data = storage.getData(key); ``` **setData** - 说明: 设置 `data_` 开头的数据 - 类型: `setData(key: string, data: any, time?: number): void` - 参数: - `key`: 存储的 key - `data`: 存储的值 - `time`: 存储时间(单位为分钟),默认: `永久` - 示例: ```ts storage.setData(key, data, 10); // 10分钟 storage.setData(key, data); // 永久 ``` **removeData** - 说明: 移除以 `data_` 开头的数据 - 类型: `removeData(key: string): void` - 参数: - `key`: 存储的 key - 示例: ```ts storage.removeData(key); ``` **clearData** - 说明: 清除所有以 `data_` 开头的数据 - 类型: `clearData(): void` - 示例: ```ts storage.clearData(); ``` **getLasting** - 说明: 获取 `lasting_` 开头的数据 - 类型: `getLasting<T = any>(key: string): T | null` - 参数: - `key`: 存储的 key - 示例: ```ts const data = storage.getLasting(key); ``` **setLasting** - 说明: 设置 `lasting_` 开头的数据,永久存储,使用 `clear` 方法默认是不清空这个数据 - 类型: `setLasting(key: string, data: any): void` - 参数: - `key`: 存储的 key - `data`: 存储的值 - 示例: ```ts storage.setLasting(key, data); ``` **removeLasting** - 说明: 移除以 `lasting_` 开头的数据 - 类型: `removeLasting(key: string): void` - 参数: - `key`: 存储的 key - 示例: ```ts storage.removeLasting(key); ``` **clearLasting** - 说明: 清除所有以 `lasting_` 开头的数据 - 类型: `clearLasting(): void` - 示例: ```ts storage.clearLasting(); ``` ## Example ### Browser ```ts import { ScStorageBase } from '@shencom/utils'; // import ScStorageBase from '@shencom/utils-storage'; const scid = 'xxx'; const Storages = new ScStorageBase({ scid, get: window.localStorage.getItem.bind(window.localStorage), set: window.localStorage.setItem.bind(window.localStorage), remove: window.localStorage.removeItem.bind(window.localStorage), clear: window.localStorage.clear.bind(window.localStorage), keys: () => Object.keys(window.localStorage), }); export default Storages; ``` ### UniApp ```ts import { ScStorageBase } from '@shencom/utils'; // import ScStorageBase from '@shencom/utils-storage'; const scid = 'xxx'; const Storages = new ScStorageBase({ scid, get: uni.getStorageSync, set: uni.setStorageSync, clear: uni.clearStorageSync, remove: uni.removeStorageSync, keys: () => uni.getStorageInfoSync().keys, }); export default Storages; ```