最近项目中使用到了localStorage 方法,原生方法使用起来肯定是不方便的,满足不了使用需求,于是自己就封装了一个 ,具备 set,get ,clear 功能。要求是保证数据类型的读写一致,也就是说,set什么类型的值进去,get的结果必须是这个类型。
上代码:
// storage
const storage = {
set(key,val){
if(!window.localStorage){
return
}
if(typeof val ==='object'){
localStorage.setItem(key,JSON.stringify(val))
}else{
localStorage.setItem(key,val)
}
},
get(key){
if(!window.localStorage){
return
}
let _data = localStorage.getItem(key);
if(!_data){
return null;
}
if(_data.indexOf('{"') > -1 || _data.indexOf('[') >-1 || !isNaN(_data) || _data ==='false' || _data ==='true'){
_data = JSON.parse(localStorage.getItem(key))
}
return _data
},
clear(key){
if(!window.localStorage){
return
}
localStorage.removeItem(key)
}
}
export {
storage
}
支持 string,number,object,boolean 四种数据类型值得写入和读取,在set时不需要手动转换成 string ,get后也会保持一致的类型值。
如你发现了优化点 欢迎指正,感谢阅读!