什么是 lockr?
lockr 是一款简单易用的本地存储 JavaScript 库,它可以在浏览器中使用,而不需要依赖任何其他库。
相比于原生 localStorage,lockr 更加方便易用,可以直接存储对象和数组等复杂数据类型,并且提供了加密、过期时间等功能。
安装 lockr
你可以使用 npm 来安装 lockr:
--- ------- ----- ------
或者,你可以直接从 CDN 引入 lockr:
------- --------------------------------------------------------------------
使用 lockr
存储数据
你可以使用 lockr.set()
方法来存储数据:
----------------- ---------
如果要存储对象或数组等复杂数据类型,可以直接传入:
----------------- - ----- -------- ---- -- --- ----------------- --- -- ----
获取数据
你可以使用 lockr.get()
方法来获取数据:
----- ---- - ------------------ -- ------- ----- ---- - ------------------ -- - ----- -------- ---- -- - ----- ---- - ------------------ -- --- -- --
如果获取不存在的数据,则会返回 undefined:
----- -------- - ---------------------- -- ---------
删除数据
你可以使用 lockr.rm()
方法来删除数据:
-----------------
清空数据
你可以使用 lockr.flush()
方法来清空所有数据:
--------------
加密和解密
lockr 支持对存储的数据进行加密和解密操作。
加密数据
你可以在初始化 lockr 时设置加密钩子函数:
------------ - ----------- -- ------------- ------------------ - --------------- - ----- ---- - --------- -- --------- ------ ------------------------------------------- ----------------- --
其中,hook.encrypt
函数接收一个参数,即要加密的数据,返回加密后的字符串。
解密数据
同样地,你也可以在初始化 lockr 时设置解密钩子函数:
------------ - ----------- -- ------------- ------------------ - --------------- - ----- ---- - --------- -- -------------- ------ -------------------------------------- ----------------------------------- --
其中,hook.decrypt
函数接收一个参数,即要解密的字符串,返回解密后的数据。
过期时间
lockr 还支持设置过期时间,当数据过期时,会被自动清除。
你可以在存储数据时设置过期时间:
----------------- - ----- -------- ---- -- -- - -------- ----- --- -- ----- - --
你也可以在初始化 lockr 时设置默认的过期时间:
------------ - ----------- -- ------------- -------------------- - ------ -- -------- - --
示例代码
------ ----- ---- -------- -- ---- ----------------- --------- ----------------- - ----- -------- ---- -- --- ----------------- --- -- --- - -------- ----- --- -- ---- ----- ---- - ------------------ -- ------- ----- ---- - ------------------ -- - ----- -------- ---- ----------------------------------------------------------- ---------- ---------------------------------------------------------------------------------------