XiaoDaiGua-Ray 36d646d8ba v4.2.9
2023-11-02 17:51:12 +08:00
..
2023-11-02 17:51:12 +08:00
2023-11-02 17:51:12 +08:00
2023-11-02 17:51:12 +08:00

描述

pinia store 仓库包。存放全局公共状态。如果不需要 pinia 但是又希望使用全局变量,可以使用 global-variable 管理数据。

约束

  • 状态管理器应该按照其用途进行分包(见名知意)
  • 包名以用途名命名
    • 默认以 index.ts 作为入口其余的辅助函数、类型分别在该文件夹下进行补充type.ts、helper.ts。。。
  • 仓库使用 piniaPluginPersistedstate 作为中间件,用于缓存仓库数据避免刷新丢失(但是该方法有缺陷,不能缓存函数)
    • 默认不全部缓存参数,如果需要缓存参数,需要在 defineStore 第三个参数配置 persist 属性
    • defineStore 第一个参数必须全局唯一
    • 缓存插件 key 应该按照 piniaXXXStore 格式命名XXX 表示该包名称)
export const useDemoStore = defineStore('demo', () => {}, {
  persist: {
    key: 'piniaDemoStore',
    paths: ['demoState'],
    storage: sessionStorage | localStorage,
  },
})
  • 最后在 index.ts 中暴露使用
export { useDemo } from './modules/demo/index'