localStorage简单封装

56 阅读1分钟
/**
     * 设置localStorage
     * @param {String} key localStorage.key
     * @param {Object} val localStorage.value
     */
     _setLocalStorage(key, val) {
        if (val === undefined) {
            return;
        }
        window.localStorage.setItem(key, this._serializeLocalStorage(val));
    }
    /**
     * 数组去重
     * @param {Array} arr 数组
     */
    _unique = (arr) => {
        return Array.from(new Set(arr));
    }
    /**
     * 获取localStorage
     * @param {String} key localStorage.key
     * @param {Object} def 不存在key时需要返回的数据
     */
    _getLocalStorage(key, def) {
        const val = this._deserializeLocalStorage(
            window.localStorage.getItem(key)
        );
        return val === undefined ? def : val;
    }
    /**
     * 转化从localStorage取出的数据
     * @param {Object} val 从localStorage取出的数据
     */
     _deserializeLocalStorage = (val) => {
        if (typeof val !== 'string') {
            return undefined;
        }
        try {
            return JSON.parse(val);
        } catch (e) {
            return val || undefined;
        }
    };
    /**
     * 转化需要存入localStorage的数据
     * @param {Object} val 需要存入localStorage的数据
     */
    _serializeLocalStorage = (val) => {
        return JSON.stringify(val);
    };