项目结构
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
约定路由
约定式路由也叫文件路由,就是不需要手写配置,文件系统即路由,通过目录和文件及其命名分析出路由配置。
- 分析 src/pages 目录拿到路由配置。
- 约定 [ $] 包裹的文件或文件夹为动态可选路由。
- 约定目录下有
_layout.tsx时会生成嵌套路由,以_layout.tsx为该目录的 layout。 - 约定 src/layouts/index.tsx 为全局路由。
- 约定 src/pages/404.tsx 为 404 页面。
布局
文件 src/layouts/index.tsx 为全局路由。
- 布局使用 Ant Design 的 Layout 组件,包含头部、侧边栏、底部。
- 布局中包含基本的鉴权功能,用户登录后,判定权限是否可以访问当前页面;未登录用户,只能访问登录页面
- 布局中包含国际化功能,用户可以选择语言,切换语言后,页面会自动刷新。
- 布局中包含主题功能,用户可以选择主题,切换主题后,页面会自动刷新。
- 布局中包含暗黑模式功能,用户可以选择暗黑模式,切换暗黑模式后,页面会自动刷新。
Description
Languages
TypeScript
99.7%
HTML
0.2%
CSS
0.1%