• vue之浏览器存储方法封装实例


    7d9bd202212011734213512.jpeg

    我们在项目中通常会对缓存进行一些操作,为了便于全局调用,会对缓存的设置、获取及删除方法进行封装成一个工具类。

    首先我们在src目录下创建一个plugins文件夹,在plugins下创建cache文件夹并创建index.js,代码如下:

    1. const sessionCache = {
    2. set(key, value) {
    3. if (!sessionStorage) {
    4. return;
    5. }
    6. if (key != null && value != null) {
    7. sessionStorage.setItem(key, value);
    8. }
    9. },
    10. get(key) {
    11. if (!sessionStorage) {
    12. return null;
    13. }
    14. if (key == null) {
    15. return null;
    16. }
    17. return sessionStorage.getItem(key);
    18. },
    19. //对象或者数组的存取
    20. setJSON(key, jsonValue) {
    21. if (jsonValue != null) {
    22. this.set(key, JSON.stringify(jsonValue));
    23. }
    24. },
    25. getJSON(key) {
    26. const value = this.get(key);
    27. if (value != null) {
    28. return JSON.parse(value);
    29. }
    30. },
    31. remove(key) {
    32. sessionStorage.removeItem(key);
    33. },
    34. // 检测缓存是否存在
    35. has(key)
    36. {
    37. return sessionStorage.getItem(key) ? true:false;
    38. },
    39. };
    40. const localCache = {
    41. set(key, value) {
    42. if (!localStorage) {
    43. return;
    44. }
    45. if (key != null && value != null) {
    46. localStorage.setItem(key, value);
    47. }
    48. },
    49. get(key) {
    50. if (!localStorage) {
    51. return null;
    52. }
    53. if (key == null) {
    54. return null;
    55. }
    56. return localStorage.getItem(key);
    57. },
    58. setJSON(key, jsonValue) {
    59. if (jsonValue != null) {
    60. this.set(key, JSON.stringify(jsonValue));
    61. }
    62. },
    63. getJSON(key) {
    64. const value = this.get(key);
    65. if (value != null) {
    66. return JSON.parse(value);
    67. }
    68. },
    69. remove(key) {
    70. localStorage.removeItem(key);
    71. },
    72. // 检测缓存是否存在
    73. has(key)
    74. {
    75. return localStorage.getItem(key) ? true:false;
    76. },
    77. setItem(params){
    78. let obj = {
    79. name:'',
    80. value:'',
    81. expires:"",
    82. startTime:new Date().getTime()
    83. }
    84. let options = {};
    85. //将obj和传进来的params合并
    86. Object.assign(options,obj,params);
    87. if(options.expires){
    88. //如果options.expires设置了的话
    89. //options.name为keyoptions为值放进去
    90. localStorage.setItem(options.name,JSON.stringify(options));
    91. }else{
    92. //如果options.expires没有设置,就判断一下value的类型
    93. let type = Object.prototype.toString.call(options.value);
    94. //如果value是对象或者数组对象的类型,就先用JSON.stringify转一下,再存进去
    95. if(Object.prototype.toString.call(options.value) == '[object Object]'){
    96. options.value = JSON.stringify(options.value);
    97. }
    98. if(Object.prototype.toString.call(options.value) == '[object Array]'){
    99. options.value = JSON.stringify(options.value);
    100. }
    101. localStorage.setItem(options.name,options.value);
    102. }
    103. }
    104. };
    105. export default {
    106. /**
    107. * 会话级缓存
    108. */
    109. session: sessionCache,
    110. /**
    111. * 本地缓存
    112. */
    113. local: localCache
    114. };
    115. 复制代码

    Copy

    挂载到vue原型上全局使用

    1. import cache from '@/plugins/cache/index'
    2. Vue.prototype.$cache = cache
    3. 复制代码

    Copy

    使用方法

    1. // localstroge的缓存
    2. this.$cache.local.has(key) //判断有没有缓存
    3. this.$cache.local.setJSON(key,value); //存储
    4. let key = this.$cache.local.getJSON('key'); //获取
    5. // sessionStorage
    6. this.$cache.session.has(key)
    7. this.$cache.session.setJSON( key,value);
    8. let key = this.$cache.session.getJSON('key');

    Copy

  • 相关阅读:
    JavaScript中的 自动装箱 自动拆箱
    Vue中使用vue-router
    Go 语言中 For 循环:语法、使用方法和实例教程
    linux下shell脚本实现wordpress搭建
    Java语言实现 比较两个Date日期的先后
    一个极简的Http请求client推荐,一行搞玩外部请求
    OpenHarmony Meetup常州站招募令
    收集域内DNS信息
    main函数参数解析与应用
    防火墙基础之路由器与防火墙单臂路由和DHCP接口地址池的配置
  • 原文地址:https://blog.csdn.net/luxiaol/article/details/134402689