首页 > 其他分享 >abp-vnext-pro 实战(六,vue 前端状态pinia)

abp-vnext-pro 实战(六,vue 前端状态pinia)

时间:2023-08-09 23:44:06浏览次数:29  
标签:vnext vue const pro dic code dict new console

在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

标签:vnext,vue,const,pro,dic,code,dict,new,console
From: https://www.cnblogs.com/zitjubiz/p/17615715.html

相关文章

  • Visual Studio中属性表.props文件的复用
    最近在Windows下配置用于支持C++的OpenCV、GDAL、Eigen环境,最开始用mingw按照sqlite3-tiff-jpeg-proj-gdal的顺序编译GDAL,十分痛苦。后来索性使用Microsoft自家的VisualStudio,拷贝别人编译好的GDAL和OpenCV以及Eigen库,终于配置完成。VisualStudio每次新建项目都要在属性表中......
  • Vue 自定义组件
    下面有一个例子。<template><el-input:value="value"@click.native="select"readonly><iclass="el-icon-circle-close"slot="suffix"@[email protected]="clear"/>&l......
  • 【JavaScript30】promise
    在前端js中是可以发送网络请求的,如果前端js的请求是线性的请求(同步),网站的体验会很差。设计js发请求的那个人.选择了使用异步执行方式.大幅度的提升用户体验.console.log("我要发请求了");setTimeout(function(){console.log("服务器返回结果了");},2000);//假设......
  • DEVICENET转MODBUS-TCP协议网关ethercat和profinet的区别
     DEVICENET转MODBUS-TCP协议网关JM-DNT-TCP1.产品功能JM–DNT-TCP是自主研发的一款DEVICENET从站功能的通讯网关。该产品主要功能是将DEVICENET总线和MODBUS-TCP网络连接起来。本网关连接到DEVICENET总线中做为从站使用,连接到MODBUS-TCP总线中做为主站或从站使用。2.拓扑......
  • BgpRoutingProcess
    源代码注释BGProutingprocess.Adataplanecounter-partof{@linkBgpProcess}.MaintainsstatenecessaryforexchangeofBGProutingmessages.RoutingProcess用于参与数据面计算,维护rib等关键信息,executeIteration是路由计算进程函数bgpv4Edge是已经成功建立peer......
  • vue+django跨域问题
    解决办法:MIDDLEWARE=['corsheaders.middleware.CorsMiddleware','yshop.middleware.AuthorizeMiddleware','django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware�......
  • 重学JavaScript Promise API
    在这篇教程中,我们将掌握如何在JavaScript中创建并使用Promise。我们将了解Promise链式调用、错误处理以及最近添加到语言中的一些Promise静态方法。什么是Promise?在JavaScript中,一些操作是异步的。这意味着当这些操作完成时,它们产出的结果或者值并不会立即生效。Promise是一......
  • 无涯教程-Perl - getprotoent函数
    描述此函数返回有效协议列表中的下一个条目:($name,$aliases,$protocol_number)语法以下是此函数的简单语法-getprotoent返回值此函数针对错误返回undef,否则返回标量context中的协议编号,并在列表context中返回错误协议记录的空列表(名称,别名,协议编号)。例以下是显......
  • 在Vue中可以使用方括号法获得想要的对象数据吗?
    1.问题Document{{message}}{{school.name}}{{school[mobile]}}在这里{{school.name}}{{school[mobile]}}不可以使用方括号法获得想要的对象数据吗?2.解决在Vue.js中,使用双花括号({{}})来插值数据是正确的,但是方括号法([])用于动态属性访问的方式是不适......
  • 无涯教程-Perl - getprotobynumber函数
    描述此函数在标量context中将协议NUMBER转换为其对应的名称,在列表context中将其名称和相关信息转换为:($name,$aliases,$protocol_number)。语法以下是此函数的简单语法-getprotobynumberNUMBER返回值此函数针对错误返回undef,否则返回标量context中的协议编号,并在列......