Files
aphrodite/README.md
2025-03-22 00:01:11 +08:00

2.5 KiB
Raw Permalink Blame History

项目结构

project-root/
├── src/
│   ├── components/
│   ├── services/            # 服务层
│   ├── models/              # Mobx状态管理
│   ├── layouts/             # 布局组件
│   ├── pages/               # 页面路由
│   ├── locales/             # 国际化配置
│   │   ├── zh-CN/
│   │   └── en-US/
│   ├── assets/              # 静态资源
│   │   ├── colors.css
│   │   ├── medias.css
│   │   └── variables.css
│   ├── App.tsx              # 主应用组件
│   ├── main.tsx             # 入口文件
│   └──typings.d.ts          # 类型定义
├── public/                  # 公共静态文件
│   └── index.html
├── package.json             # 项目配置
├── tsconfig.json            # TypeScript配置
└── vite.config.ts           # 构建配置

技术栈

  • 前端框架React
  • 前端语言TypeScript
  • UI 库Ant Design
  • 状态管理Mobx
  • 网络请求Axios
  • 样式管理CSS-in-JS
  • 路由管理React Router
  • 国际化React intl
  • 代码规范ESLint
  • 代码格式化Prettier
  • 构建工具Vite
  • 其他:
    • 图表库Recharts
    • 富文本编辑器React Quill
    • 图片上传React Dropzone
    • MD5 加密spark-md5
    • 文件上传react-dropzone

约定路由

约定式路由也叫文件路由,就是不需要手写配置,文件系统即路由,通过目录和文件及其命名分析出路由配置。

  1. 分析 src/pages 目录拿到路由配置。
  2. 约定 [ $] 包裹的文件或文件夹为动态可选路由。
  3. 约定目录下有 _layout.tsx 时会生成嵌套路由,以 _layout.tsx 为该目录的 layout。
  4. 约定 src/layouts/index.tsx 为全局路由。
  5. 约定 src/pages/404.tsx 为 404 页面。

布局

文件 src/layouts/index.tsx 为全局路由。

  1. 布局使用 Ant Design 的 Layout 组件,包含头部、侧边栏、底部。
  2. 布局中包含基本的鉴权功能,用户登录后,判定权限是否可以访问当前页面;未登录用户,只能访问登录页面
  3. 布局中包含国际化功能,用户可以选择语言,切换语言后,页面会自动刷新。
  4. 布局中包含主题功能,用户可以选择主题,切换主题后,页面会自动刷新。
  5. 布局中包含暗黑模式功能,用户可以选择暗黑模式,切换暗黑模式后,页面会自动刷新。