egjs-persist 是一个用于保存和加载数据的 npm 包。它使用 localStorage 或 sessionStorage 来存储数据,可以在浏览器刷新或关闭后保持数据的持久性。本篇文章将为你详细介绍如何使用这个包,并提供示例代码来帮助你更好地理解。
安装
你可以通过 npm 安装 egjs-persist:
npm install egjs-persist --save
API
setItem(key: string, value: any, options?: PersistOptions): Promise<void>
将数据存储到 localStorage 或 sessionStorage 中。key
是存储时使用的键名,value
是要存储的数据,options
是一个可选的配置对象,用于设置过期时间等选项。该方法返回一个 Promise 对象,可以通过 .then()
和 .catch()
方法处理异步操作的结果。
-- -------------------- ---- ------- ------ - ------- - ---- --------------- ------------------- ----- ----- -------- -- - ----------------- ----- ---------------- -- ------------ -- - --------------------- -- ---- ----- --------- ---
getItem(key: string, options?: PersistOptions): Promise<any>
从 localStorage 或 sessionStorage 中获取指定键名对应的数据。options
是一个可选的配置对象,用于设置过期时间等选项。该方法返回一个 Promise 对象,可以通过 .then()
和 .catch()
方法处理异步操作的结果。
-- -------------------- ---- ------- ------ - ------- - ---- --------------- ------------------- ------------- -- - ------------------- ------------ -- ------------ -- - --------------------- -- --- ----- --------- ---
removeItem(key: string): Promise<void>
从 localStorage 或 sessionStorage 中删除指定键名对应的数据。
-- -------------------- ---- ------- ------ - ---------- - ---- --------------- ---------------------- -------- -- - ----------------- ------- ---------------- -- ------------ -- - --------------------- -- ------ ----- --------- ---
clear(): Promise<void>
清空 localStorage 或 sessionStorage 中的所有数据。
-- -------------------- ---- ------- ------ - ----- - ---- --------------- ------- -------- -- - ---------------- ---- ------- ---------------- -- ------------ -- - --------------------- -- ----- ----- --------- ---
setStorage(storage: Storage): void
设置要使用的存储对象。默认情况下,egjs-persist 使用 localStorage。如果你想使用 sessionStorage,可以调用该方法并传入 sessionStorage 对象。
import { setStorage } from "egjs-persist"; setStorage(sessionStorage);
配置选项
所有方法都支持一个可选的配置对象,用于设置过期时间等选项。以下是支持的选项:
expires?: number | Date
设置数据的过期时间。可以是一个数字(以毫秒为单位),表示从当前时间开始多长时间后过期;也可以是一个 Date 对象,表示过期的时间点。
setItem("username", "John Doe", { expires: 3600000 }); // 过期时间为 1 小时 setItem("city", "New York", { expires: new Date("2023-12-31") }); // 过期时间为 2023 年 12 月 31 日
serializer?: (value: any) => string
设置自定义的序列化函数。默认情况下,egjs-persist 使用 JSON.stringify() 来序列化数据。如果你想使用其他的序列化方式,可以传入一个函数。
setItem("user", { name: "John Doe", age: 30 }, { serializer: (value) => { return `${value.name},${value.age}`; }, });
deserializer?: (value: string) => any
设置自定义的反序列化函数。默认情况下,egjs-persist 使用 JSON.parse() 来反序列化数据。如果你想使用其他的反序列化方式,可以
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/39165