xk-storage
v0.0.3
Published
```sh npm i xk-storage ```
Readme
Basic Using
npm i xk-storage import { HStorage } from "xk-storage";
/** 创建 storage 存储实例 */
const storage = new HStorage({
namespace: '',
encrypt: true,
})
storage.set('token', "TEST_TOKEN")
storage.set('token', "TEST_TOKEN", 1000 * 60 * 60) // -- 可通过传入第三个参数,设置过期时间(单位/毫秒)
storage.get('token', "TEST_TOKEN")实例配置对象
interface StorageOptions {
/* 命名空间: 本地存储时会自动给存储的 key 添加上前缀(对存储数据进行操作时不需要给 key 加上这个前缀,内部会自动解析) */
namespace?: string
/* 是否加密: 默认 false 不加密(加密使用的时非对称加密,内部有默认的 '私钥' 与 '公钥',也可以配置自定义的公钥与私钥) */
encrypt?: boolean
/* 加密公钥 */
publicKey?: string
/* 加密私钥 */
privateKey?: string
}方法示例
/* 设置 */
storage.set(key, value, ttl) // -- ttl: 有效时间(单位/毫秒)
/* 获取 */
storage.get(key)
/* 移除 */
storage.remove(key)
/* 清空所有存储 */
storage.clear(key)
/* 清空当前命名空间所有存储 */
storage.clearNamespace(key)与 Pinia 持久化插件 pinia-plugin-persistedstate 一起使用
如果项目中有集成了持久化插件,可以通过配置持久化插件 "自定义存储器" 与 "自定义系列化" 的方式,来统一项目中使用的存储器
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-plugin-persistedstate'
// -- 持久化插件配置
const persistedStatePlugin = createPersistedState({
/* 使用自定义 storage 存储器 */
storage: {
getItem: storage.get.bind(storage) /* 通过 bind 绑定当前存储器,避免 this 指向丢失 */,
setItem: storage.set.bind(storage),
},
/* 自定义持久化插件序列化操作(取消该插件的自动序列化)→ 因为与所封装的 HStorage 工具的序列化有冲突,所以禁用该默认的序列化功能 */
serializer: {
serialize: (value) => value as any,
deserialize: (value) => value as any,
},
})
// -- 基本的 pinia 配置(可忽略)
const pinia = createPinia().use(persistedStatePlugin)
export default pinia