/**
* 设置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);
};