ts版localStorage和sessionStorage工具,存储的大多数是json,转来转去的麻烦,直接自带自动序列化json功能

interface StorageInterface {//设置localStorageset: (key: string, value: any) => void;//获取localStorage,默认会自动转jsonget: (key: string, isJson?: boolean) => string | Record<any, any>;//是否含有keyhas: (key: string, isJson?: boolean) => boolean;//移除remove: (key: string) => void;
}interface SessionStorageInterface extends StorageInterface {//提供session操作接口session: StorageInterface;
}const storage: SessionStorageInterface = {} as SessionStorageInterface;//加方法
const extend = (s: Storage): StorageInterface => {return {set(key, value) {if (typeof value == "object") {s.setItem(key, JSON.stringify(value));} else {s.setItem(key, value);}if (value == undefined || value == null) {s.removeItem(key);}},get(key, isJson = true) {const item = s.getItem(key) as string;try {if (isJson) {let ret =  JSON.parse(item);//JSON.parse 可以转基本类型,不报错。。。,所以这里判断一下if (typeof ret !== 'object') {return undefined;}return ret;}} catch (e) {//解析出错,则证明不是json字符串,返回undefinedreturn undefined;}return item;},has(key,isJson=false) {return !!(this.get(key,isJson) as string | Record<any, any>);},remove: (key) => {s.removeItem(key);},};
};Object.assign(storage, extend(window.localStorage));
Object.assign(storage, {session: extend(window.sessionStorage),
});export default storage;

ts版操作localStorage和sessionStorage工具相关推荐

  1. HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  2. 本地存储三种方式cookie、localStorage、sessionStorage的详细介绍

    前言 网页刷新的时候数据会被清空,这时候就需要用到存储技术.前端本地存储的方式有三种,分别是cookie.localStorage.sessionStorage.在前端面试过程中,经常会被问及这些存储 ...

  3. H5存储------localStorage和sessionStorage

    web现在随着计算机的高速发展,客户端干的事情越来越多了,随着事情的增多,很多东西存储就不止在服务器了,本地存储越来越强大了(大神原谅我废话了????) 早期时期 cookie存储 (之前我用着还是很 ...

  4. Cookie, LocalStorage 与 SessionStorage异同

    不同 cookie由服务端生成,用于标识用户身份:而两个storage用于浏览器端缓存数据 一般情况下浏览器端不会修改 cookie,但会频繁操作两个storage cookie有path概念,子路径 ...

  5. Web数据存储之localStorage和sessionStorage

    Web数据存储之localStorage和sessionStorage 学习前端以来,自己了解有localStorage和sessionStorage的相关存储的知识,也有实践过,但是之前只限于能用的 ...

  6. Vue项目代码改进(三)—— Cookie、LocalStorage和SessionStorage的使用

    存在问题: 如果在退出页面时,没有点击"退出"按钮,而是直接关闭页面,token并没有被清除,依然能通过访问http://localhost:8080/#/ 直接进入主页. 原因: ...

  7. 解决浏览器存储问题,不得不了解的cookie,localStorage和sessionStorage

    浏览器存储方式 一.浏览器存储的方式 二.cookie.localStorage和sessionStorage 1.cookie.localStorage和sessionStorage是什么? (1) ...

  8. Intellij IDEA 社区版集成 Database Navigator 数据库管理工具

    Intellij IDEA 社区版集成 DB Navigator数据库管理工具 第一步:打开IDEA, Intellij IDEA -> Preferences -> Plugins 第二 ...

  9. LocalStorage与SessionStorage

    localStorage与sessionStorage localStorage和sessionStorage是HTML5提供的对于Web存储的解决方案. 相同点 都与HTTP无关,是HTML5提供的 ...

  10. localStorage、sessionStorage详解,以及storage事件使用

    有关localStorage和sessionStorage的特性. localStorage本身带有方法有 添加键值对:localStorage.setItem(key,value),如果key存在时 ...

最新文章

  1. 深蓝学院的深度学习理论与实践课程:第二章
  2. 反模式? 只有模式不彻底吧
  3. C#代码创建3D模型
  4. linux下时间同步的两种方法分享
  5. Sentinel流控规则持久化
  6. 论文浅尝 | 图神经网络的对抗攻击和防御相关文献集
  7. 传言苹果或将ARM引入笔记本电脑;但是它为什么会呢?
  8. Android性能优化系列---管理你的app内存(一)
  9. c语言上机题库大一,C语言上机题库(一).doc
  10. 蓝丝雨dnf刷图脚本制作
  11. 手机和工业计算机运算能力对比,手机CPU和电脑CPU性能相差多少 手机CPU和电脑CPU性能对比...
  12. 呀,要解析的xml文件有1G大,怎么办?
  13. 面试时,如何正确表现自己的实力?
  14. 3 4j不是合法的python表达式_3+4j不是合法的Python表达式。
  15. python Flask web 框架 (十七)
  16. 苹果MAC OS X双系统安装教程
  17. Meta再放大招!VR新模型登CVPR Oral:像人一样「读」懂语音
  18. linux安装mysql centos_Linux CentOS安装Mysql
  19. php 去除emoji
  20. layer 上传图片点击取消仍在加载_上传图片到smms图床(整合layer上传插件) by:小灰灰 | 小灰灰博客...

热门文章

  1. 惊艳呈现-百度搜索手机客户端-设计项目分享
  2. L1-087 机工士姆斯塔迪奥-PAT 团体程序设计天梯赛 GPLT
  3. 天梯赛java题解 L1-087 机工士姆斯塔迪奥分数 20
  4. c语言编程最大公约数教程说明,C语言:最大公约数。
  5. 一些实用的学生向脚本(补)
  6. 苹果设备验证是否正品
  7. 解决go get i/o timeout的问题
  8. Android百度地图自定义添加Marker点
  9. HanLP-命名实体识别总结
  10. LeetCode——自除数