返回
Typescript本地存储封装,让前端存储更便捷
前端
2023-09-13 16:26:08
前言
本地存储是Web Storage API的一部分,它允许在浏览器中存储数据,以便在以后检索。本地存储的数据在浏览器会话之间是持久的,这意味着即使关闭浏览器窗口或选项卡,数据也不会丢失。
本地存储有两种类型:
- localStorage:存储的数据在浏览器会话之间是持久的,即使关闭浏览器窗口或选项卡,数据也不会丢失。
- sessionStorage:存储的数据在浏览器会话期间是持久的,当关闭浏览器窗口或选项卡时,数据将丢失。
使用Typescript封装本地存储
为了更好的使用本地存储,我们可以使用Typescript对本地存储进行封装。封装的好处是:
- 代码更简洁、更易读。
- 可以添加一些实用的功能,如过期时间、数据加密等。
下面是使用Typescript封装本地存储的代码:
class LocalStorage {
private storage: Storage;
constructor() {
this.storage = window.localStorage;
}
setItem(key: string, value: any, expire?: number) {
if (expire) {
const expireDate = new Date();
expireDate.setTime(expireDate.getTime() + expire * 1000);
this.storage.setItem(key, JSON.stringify({
value: value,
expire: expireDate.toISOString()
}));
} else {
this.storage.setItem(key, JSON.stringify(value));
}
}
getItem(key: string): any {
const item = this.storage.getItem(key);
if (item) {
const data = JSON.parse(item);
if (data.expire) {
const expireDate = new Date(data.expire);
if (expireDate.getTime() < new Date().getTime()) {
this.removeItem(key);
return null;
}
}
return data.value;
}
return null;
}
removeItem(key: string) {
this.storage.removeItem(key);
}
clear() {
this.storage.clear();
}
}
const localStorage = new LocalStorage();
使用封装后的本地存储
使用封装后的本地存储非常简单,只需实例化一个LocalStorage对象即可。
const localStorage = new LocalStorage();
// 设置一个本地存储项
localStorage.setItem('name', '张三');
// 获取一个本地存储项
const name = localStorage.getItem('name');
// 删除一个本地存储项
localStorage.removeItem('name');
// 清空本地存储
localStorage.clear();
添加实用的功能
在封装本地存储时,我们可以添加一些实用的功能,如过期时间、数据加密等。
过期时间
我们可以为本地存储项设置过期时间。当过期时间到达时,本地存储项将被自动删除。
localStorage.setItem('name', '张三', 60 * 60 * 24); // 设置一个小时的过期时间
数据加密
我们可以对本地存储中的数据进行加密。这样,即使有人获得了本地存储的数据,也无法读取其中的内容。
const encryptedValue = encrypt('张三');
localStorage.setItem('name', encryptedValue);
const name = decrypt(localStorage.getItem('name'));
结语
使用Typescript封装本地存储可以使我们更好的使用本地存储,并添加一些实用的功能,如过期时间、数据加密等。这将使我们的前端代码更加健壮和安全。