本文引用的文件
本文件面向“AI有声书生成平台”的前端路由体系,围绕 UniApp 的页面路由配置与运行时行为进行系统化梳理。重点覆盖以下方面:
本项目采用 UniApp + Vue 3 + Vite 的技术栈,路由配置集中在 pages.json,页面通过 uni-app 的导航 API 进行跳转,全局状态通过 Pinia 管理。
graph TB
subgraph "应用入口"
A["App.vue<br/>应用生命周期(onLaunch/onShow/onHide)"]
B["main.ts<br/>创建应用实例/初始化用户状态"]
C["manifest.json<br/>应用元信息/平台能力"]
end
subgraph "路由与页面"
D["pages.json<br/>页面清单/窗口样式/TabBar"]
E["各页面组件<br/>如 pages/index/index.vue 等"]
end
subgraph "状态与网络"
F["store/user.ts<br/>用户状态/Pinia"]
G["utils/request.ts<br/>统一请求/鉴权/重试/缓存"]
H["utils/storage.ts<br/>跨端存储封装"]
end
subgraph "开发与构建"
I["vite.config.ts<br/>代理/插件"]
end
A --> B
B --> F
B --> G
D --> E
F --> E
G --> E
I --> D
图表来源
章节来源
章节来源
UniApp 的路由体系由“配置驱动 + 运行时导航 API”构成。pages.json 决定页面清单与 TabBar,运行时通过 uni-app 的导航 API 控制页面栈与跳转行为;全局状态与网络层负责权限校验与数据获取。
sequenceDiagram
participant U as "用户"
participant P as "页面组件"
participant R as "路由导航API"
participant S as "用户状态(Pinia)"
participant N as "网络层(request)"
participant B as "后端"
U->>P : 触发跳转/进入页面
P->>R : uni.navigateTo/switchTab/reLaunch
R-->>P : 页面栈变化/页面显示
P->>S : 读取登录状态/会员状态
alt 未登录
P->>N : 调用登录接口
N-->>P : 成功后写入token/用户信息
P->>R : reLaunch/switchTab 跳转首页
else 已登录
P->>N : 拉取业务数据
N->>B : 发起带Authorization的请求
B-->>N : 返回数据/401
alt 401
N->>R : reLaunch 跳转登录页
end
end
图表来源
章节来源
权限守卫
网络层在收到 401 时清除 token 并跳转登录页
flowchart TD
Start(["页面显示"]) --> CheckLogin["检查登录状态"]
CheckLogin --> |未登录| GoLogin["跳转登录页"]
CheckLogin --> |已登录| FetchData["拉取业务数据"]
FetchData --> Resp{"请求结果"}
Resp --> |401| ClearToken["清除token并跳转登录"]
Resp --> |其他| Done(["渲染完成"])
GoLogin --> Done
ClearToken --> Done
图表来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
构建与代理
vite.config.ts 提供 /api、/uploads、/videos 代理,便于开发联调
graph LR
P["pages.json"] --> T["TabBar/页面清单"]
M["main.ts"] --> U["App.vue"]
U --> S["store/user.ts"]
S --> R["utils/request.ts"]
R --> B["后端API"]
V["vite.config.ts"] --> R
图表来源
章节来源
章节来源
章节来源
本项目的路由体系以 pages.json 为配置核心,结合 uni-app 导航 API 与 Pinia 状态管理,实现了清晰的页面组织、完善的权限控制与良好的用户体验。通过合理的生命周期管理、请求缓存与懒加载策略,能够在多端环境中保持稳定的性能表现。未来可在动态路由参数校验、SEO 结构化数据与更细粒度的页面懒加载方面进一步优化。