Storage封装超详细注解,不用像我这样熬到零点四十三分了

/*
 * @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))
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值