详解Vue中localstorage和sessionstorage的使用

本文讨论了在Vue项目中使用localStorage和sessionStorage时遇到的问题,包括耦合度过高、命名冲突和存储空间浪费。为了解决这些问题,提出了封装存储方法、规范命名空间和使用规范等解决方案。建议全局使用的东西存储在localStorage,临时数据存储在sessionStorage,并在数据量过大时考虑其他存储方案,如Indexeddb。同时,文章也提醒开发者注意事件处理的清理,避免内存泄漏。
摘要由CSDN通过智能技术生成

1. 项目使用中暴露出来的几个问题

大家到处直接使用localstorage['aaa']='这是一段示例字符串'这些原生语法实现,这样耦合度太高了,假如有一天我们需要换实现方式,或者对存储大小做一些控制,那么需要修改的代码就会很多

项目很大,那么大家起的key的名字难免会重复,而且这样也会造成全局污染

因为localstorage的使用不规范,所以造成了存储空间的浪费和不够用

2. 解决办法

封装storage的使用方法,统一处理

规范storage的key值的命名规则
规范storage的使用规范

2.1. 封装统一的方法

封装成方法可以降低耦合度,可以方便切换实现方式,可以控制存储量大小

改变实现可以通过配置不同的参数来实现

编辑如图所示的项目结构

代码实现

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
  * storage.js
  */
/*
  * @Desc: 本地数据存储方法封装
  * @Ref:
  * @Explain:为了不new对象,只能多写几遍
  * @Example:
  *
  * 1、LocalStorage的使用
  * import storage from '@/utils/storage.js'
  * storage.setItem('shiguoqing0',[1,2,3,4,5,6])
  * storage.setItem('shiguoqing1',{userId:'dfdf',token:11232323})
  * storage.setItem('shiguoqing2','dfdfdf')
  * console.log(storage.getItem('shiguoqing0'))
  * console.log(storage.getItem('shiguoqing1'))
  * console.log(storage.getItem('shiguoqing2'))
  * storage.removeItem('shiguoqing2')
  *
  *
  * 2、SessionStorage的使用
  * storage.setItem('shiguoqing0',[1,2,3,4,5,6],{type:'session'})
  *
  * */
// TODO:其他方法的实现
// TODO:超时时间的设置
/*
  * 方法实现
  * */
import local from './storage/localstorage.js'
import session from './storage/session.js'
import cookies from './storage/cookies.js'
import json from './storage/json.js'
/*
* 函数体
* */
let storage= {
  config:{
   type:'local',// local,session,cookies,json
   expires:new Date().getTime() + 100 * 24 * 60 * 60 * 1000
  },
  getStorage(options){
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值