Files

6 lines
1.2 KiB
Markdown
Raw Normal View History

2026-07-17 09:35:32 +08:00
src/ 作为整个前端应用的根目录,由三个横向层次自底向上拼装:
- 共享基础设施层(shared_infra):theme/settings.ts、constants、enum、locales、styles、typings 提供全局主题、常量、多语言、样式与类型,被所有子模块直接 import。
- 框架能力层(framework_layers):router/index.ts 通过 elegant-router 生成路由表并注册 guardstore/index.ts 初始化 Pinia 插件;service/request/index.ts 封装 @sa/axios 实例,三者通过认证态(auth store)串联。
- UI 渲染层(ui_framework + business_views):layouts/base-layout 与 blank-layout 组合 global-header/global-sider/global-tab/global-content 等模块构成页面骨架,views 下的业务页面按路由懒加载注入。
启动链路:main.ts → plugins/index.ts(注册 app/assets/dayjs/iconify/loading/nprogress)→ router/index.ts(注册守卫与路由)→ store/index.ts(挂载 Pinia)→ service/request/index.ts(配置 axios 拦截器)→ App.vue 根据 theme.layout 选择 base-layout 或 blank-layout 渲染当前 route-view。各层之间仅通过共享基础设施暴露的导出进行耦合,业务 views 不直接依赖 request/store,而是经 hooks/business 与 service/api 间接访问。