/*
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2020-05-14 16:31:27
* @LastEditors: sueRimn
* @LastEditTime: 2020-05-15 00:36:59
*/
/**
* @name:
* @test: test font
* @msg:
* @param {
* Storage封装
*
* 食用方法:
*
* import storage from '@/utils/storage'
*
* storage.setsetItem | 存储值
*
* storage.getItem | 获取值
*
* storage.clear | 清除值
* }
* @return:
*/
const STORAGE_KEY = "BcbErp"
export default {
/**
* @param {
* 存储值:
*
* key:键值user
* value:值如user:{name:'aaa',age:'18'}中的.name
* module_name:获取哪一个模块:如user模块:{name:'aaa',age:'18'}
*
* 详细步骤:
*
* 1.module_name哪个大的模块需要存值如user,先获取user所有信息
*
* 2.存入新的值如:user.city='郑州'存入到user中
*
* 3.再次调用这个函数传入,模块名称:user和{name:'aaa',age:'18',
* val:'value的值'}
*
* 4.因为没有module_name,所以直接获取整个对象,此时key就是模块名称
*
* 5.将对象中的user模块更换为新的值
*
* 6.覆盖掉原来的整个模块的值
*
* }
*/
setItem(key, value, module_name) {
if (module_name) {
let val = this.getItem(module_name);
val[key] = value;
this.setItem(module_name, val)
} else {
let val = this.getStorage();
val[key] = value;
window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
}
},
/**
* @param {
* 获取某一个模块下面的属性
*
* 1.如果传有两个值
* module_name:哪一个模块,如user模块:{name:'aaa',age:'18'}
* key:获取模块下的哪一个值,如user模块.下的name
*
* 2.如果只传一个值
* key:就是那一个模块,如user整个模块:{name:'aaa',age:'18'}
*
* }
*/
getItem(key, module_name) {
if (module_name) {
let val = this.getItem(module_name);
if (val) return val[key]
}
return this.getStorage()[key];
},
/**
* @param {
* 获整个Store的信息
* }
*/
getStorage() {
return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}')
},
/**
* @param {
* 清除某一个值:
*
* 1.如果传有模块名称module_name如:user,
* 此时key就是模块名称user下的.name
*
* 2.如果没有传入模块名称module_name,此时key就是一个模块名称
* 如:user:{name:'aaa',age:'18'}
*
* 详细步骤:
*
* 1.获取整个模块值
*
* 2.判断是否有模块名称如:user
*
* 3.判断user模块是否存在数据的模块当中
*
* 4.直接删除这个模块user中的key
* 如user:{name:'aaa',age:'18'}中的user.name
*
* 5.如果没有传入module_name则key就是模块如:user
* 应当获取整个数据,删除user
*
* 6.将更改的数据替换原有的数据
*
* }
*/
clear(key, module_name) {
let val = this.getStorage();
if (module_name) {
if (!val[module_name]) return;
delete val[module_name][key];
} else {
delete val[key];
}
window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
}
}
Storage封装超详细注解,不用像我这样熬到零点四十三分了
最新推荐文章于 2022-09-09 11:42:22 发布