47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
# H. 前端 Store 速查
|
||
|
||
:::tip 概述
|
||
Pinia store 模块速查(store/modules/ 七个):user/asyncRoute/tabsView/designSetting/projectSetting/lockscreen/ossConfig。详见 [9.6 状态管理(Pinia)](../frontend/store)。
|
||
:::
|
||
|
||
## 模块速查
|
||
|
||
| 模块 | 职责 | 关键状态/动作 |
|
||
|------|------|-------------|
|
||
| user.ts | 登录与身份 | token、userInfo;Login/GetInfo/LogOut |
|
||
| asyncRoute.ts | 动态路由 | 菜单树、generateRoutes、isDynamicAddedRoute |
|
||
| tabsView.ts | 标签页 | visitedTabs、cachedTabs、delCachedTab |
|
||
| designSetting.ts | 设计设置 | 主题色、水印、灰度/色弱 |
|
||
| projectSetting.ts | 项目设置 | 布局模式、标签页/面包屑开关 |
|
||
| lockscreen.ts | 锁屏 | 锁定状态、解锁 |
|
||
| ossConfig.ts | 存储配置 | OSS 配置状态 |
|
||
|
||
## 辅助文件
|
||
|
||
```text
|
||
store/index.ts createPinia(含持久化插件)
|
||
store/mutation-types.ts 存储键常量(ACCESS_TOKEN / FIRST_ROUTE)
|
||
store/types.ts 类型定义
|
||
store/plugins/ 持久化等插件
|
||
```
|
||
|
||
## 关键流转
|
||
|
||
```text
|
||
登录:Login → data.access_token → storage(ACCESS_TOKEN) + store.token
|
||
首进:守卫 → GetInfo(getUser)→ userInfo.permissions
|
||
→ generateRoutes(getMenus)→ 动态路由注入
|
||
登出/401:清 storage + store → 跳登录
|
||
|
||
持久化:token/用户设置持久化;用户信息/菜单内存态(刷新重拉)
|
||
```
|
||
|
||
## 使用模式
|
||
|
||
```ts
|
||
import { useUserStore, useUserStoreWidthOut } from '@/store/modules/user';
|
||
|
||
const userStore = useUserStore(); // setup 内
|
||
const token = userStore.token;
|
||
```
|