随笔 - 435  文章 - 0  评论 - 111  阅读 - 62万 

在login的时候把所有写入全局store,

复制代码
        console.log('----------------从数据库获取字典--------------------');
        const appStore = useAppStore();
        const dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
        const detailInput = new PagingDataDictionaryDetailInput();
        detailInput.dataDictionaryId = '3a0cd740-f56e-db56-2a4e-00c1e9fb6880';
        const obj = (await dataDictionaryServiceProxy.pageDetail(detailInput));
        console.log(obj);
        const employees = new Map();
        for (var dic of obj.items) {
          console.log(dic.code + ':' + dic.displayText);
          employees.set(dic.code, dic.displayText);
        }

        appStore.setDictionary(employees);
复制代码

取值

export function dataDictGetText(code) {
  const appStore = useAppStore();
  const dict = appStore.getDictionary;
  console.log(dict);
  if(dict!=null)
    return dict.get(code+'');

}

pinia 状态管理,在user.ts

复制代码
interface AppState {

  //字典数据
  dataDictionary: Map<string, string>;
}
let timeId: TimeoutHandle;
export const useAppStore = defineStore({
  id: 'app',
  state: (): AppState => ({

    dataDictionary: undefined,
  }),
  getters: {
     getDictionary(): Map<string,string> {
      return this.dataDictionary || new Map(JSON.parse(localStorage.getItem('app_dict')));
    },
  actions: {
    setDictionary(dict): void {

       this.dataDictionary = dict;
       localStorage.setItem('app_dict', JSON.stringify([...dict]));


    },
复制代码

浏览器刷新按钮,store的状态又变成初始值了 undefined, 上面用了localStorage来保存map

posted on   Gu  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
历史上的今天:
2018-08-09 Swagger 路径过滤 -PreSerializeFilters
点击右上角即可分享
微信分享提示