在前端开发中,我们经常需要将一些数据维护在浏览器本地,以便于下次访问时使用。而在Cookie中保存数据限制较多,因此使用Web Storage(localStorage 和sessionStorage)来存储数据是常见的做法。而storage2 npm包就是一个便于使用的Web Storage封装。
什么是storage2
Storage2是一个Promise和Cookie和IndexedDB友好的快速、小巧的js库,用于在Web存储中存储数据,支持的特性包括:
- localStorage 和sessionStorage存储;
- 可自定义存储时间戳;
- 可设置存储内容的类型(自动JSONserialize/deserialize);
- 在不支持localStorage/sessionStorage的页面上使用cookie作为存储替代品。
安装
在终端或命令提示符中输入以下命令可以安装storage2:
npm install storage2
用法
存储
使用Storage2进行存储操作非常简单,只需使用set方法传入存储键(key)和值(value)即可。而对于存储的值,我们可以通过设置param.isObject让Storage2自动将值序列化为JSON字符串并存储,也可以手动序列化后存储。
-- -------------------- ---- ------- -- ------------ -------------------- ------- ------------------- --- -- -------- ----- ------ - ------ ------- ---- --- ----- --------- - --------------------- ---------------------- ---------- -- -------- ----- ------- - ------ ------ ---- --- ----------------------- -------- ---------- ------
获取
获取存储数据也非常容易,只需要使用get方法传入需要获取的存储键即可。
// 获取单个键值 const name = Storage2.get('name') // 返回Jack const personStr = Storage2.get('person') // 返回一个JSON字符串 const teacher = Storage2.get('teacher') // 返回自动反序列化的对象
删除
如果我们需要删除一个已经存储的数据,可以使用remove方法来实现。
Storage2.remove('name') // 删除存储键为name的数据
其他API
Storage2还支持了一些其他API来方便修改存储的时间戳,判断存储是否存在以及清空存储等操作。比如:
Storage2.rename('teacher', 'master') // 修改键名 Storage2.set('test', 'hello', {expires: 3600}) // 设置存储时间戳为1小时 Storage2.isset('test') // 存储是否存在 Storage2.clear() // 清空所有存储
常见问题
何时使用localStorage和sessionStorage
localStorage 对象用于长期存储整个网站的数据,通常用于存储用户自定义设置,而且只要用户不清理缓存,这些数据将永久保存。sessionStorage 对象用于临时存储一些和网站有关的数据,能够使得用户在不同的页面之间保持数据一致性,一旦窗口或标签页被关闭,存储的数据也被随之丢弃。
存储大小限制
localStorage 和sessionStorage 的存储大小通常为5M,在某些浏览器中超出限制后,数据将被自动清除。
安全性
localStorage 和 sessionStorage 的数据不会被发送到服务器端,因此相对Cookie更加安全。但是它们不会加密,因此敏感数据应该加密后再进行存储。
结论
Storage2是一个很方便、易用的 Web 存储库,它可以帮助你简化本地数据存储的操作。在实际开发中,我们需要根据实际情况来灵活使用 localStorage 和 sessionStorage 以及其他存储方案。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedad05b5cbfe1ea0610bb6