WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2024-05-16 bc8f7123657eb2dde8a328928140c94ea0cc3d29
common/LocalStorage.js
@@ -1,6 +1,8 @@
/**
 * LocalStorage - 混合App模式,本地存储同步工具
 *  用于区分不同开发环境读取不同数据
 * @tutorial 注意:混合App模式中,不建议使用 Taro.setStorageSync 存储数据
 *      因为Taro API无法区分不同开发环境,测试环境与正式环境存储的本地数据,读取时会串通
 *      本方法解决方式在于,给键名增加了开发环境的前缀,例如:AiSim.lc@***、AiSim.wc@***、AiSim.rb@***
 * @author Tevin
 */
@@ -18,9 +20,22 @@
        this._data.prefixType = prefixType;
    }
    load(key) {
    load(key, defaultType = 'obj') {
        const name = 'AiSim.' + this._data.prefixType + '@' + key;
        return JSON.parse(Taro.getStorageSync(name) || '{}');
        const data = Taro.getStorageSync(name);
        if (data) {
            return JSON.parse(data);
        } else {
            if (defaultType === 'obj') {
                return {};
            } else if (defaultType === 'arr') {
                return [];
            }
        }
    }
    loadArr(key) {
        return this.load(key, 'arr');
    }
    save(key, value) {
@@ -60,7 +75,7 @@
    }
    // 清除本地存储工具保存的所有数据
    cleanAll(){
    cleanAll() {
        const info = Taro.getStorageInfoSync();
        const prefixReg = /^AiSim\.[a-zA-Z]+@/;
        info.keys.forEach(storageKey => {
@@ -72,4 +87,4 @@
}
export const $localStorage = new LocalStorage();
export const $localStorage = new LocalStorage();