浏览代码

优化store的处理方式

Michael Wang 3 年之前
父节点
当前提交
408b054f92
共有 1 个文件被更改,包括 9 次插入10 次删除
  1. 9 10
      src/store/store.ts

+ 9 - 10
src/store/store.ts

@@ -1,7 +1,7 @@
 import { defineStore } from "pinia";
 import { AudioPlayTime, Store } from "@/types/student-client";
 
-const initStore: Store = {
+const initState: Store = {
   user: {} as Store["user"],
   menus: {} as Store["menus"],
   appDownload: {} as Store["appDownload"],
@@ -39,9 +39,7 @@ export function resetStore() {
 }
 
 export const useStore = defineStore("ecs", {
-  state: () => {
-    return initStore;
-  },
+  state: () => initState,
   getters: {
     /** 当前是否有globalMask */
     hasGlobalMask(): boolean {
@@ -159,14 +157,15 @@ export const useStore = defineStore("ecs", {
   },
 });
 
-export let store = null as unknown as ReturnType<typeof useStore>;
+type GlobalStore = ReturnType<typeof useStore>;
+
+export let store: GlobalStore;
 
-export function setStore(s: ReturnType<typeof useStore>) {
+export function setStore(s: GlobalStore) {
   store = s;
+  storeListener();
 }
-void Promise.resolve(0).then(() => {
-  // store = useStore();
-
+function storeListener() {
   store?.$subscribe((_mutation, state) => {
     sessionStorage.setItem(
       "ecs",
@@ -177,4 +176,4 @@ void Promise.resolve(0).then(() => {
   });
   const cachedState = JSON.parse(sessionStorage.getItem("ecs") || "0");
   cachedState && (store.$state = cachedState);
-});
+}