制定项目规范
用途
这份是可复用的项目规范模板,新项目直接照搬,按需修改。
详细配置请参考 新建一个 react 单页面项目,编码工具参考 统一编码规范。
技术栈
- TypeScript
- React / Vue + Hooks
- Less / Sass
- webpack / Vite
公用库
公用库是团队沉淀的、推荐优先使用的库,避免引入同类竞品导致维护成本上升。
ant-design/element-plus- UI 组件库ahooks- 工具 hookslodash-es- 工具函数(按需引入)axios- 请求库
命名规范
| 类型 | 规则 | 例子 |
|---|---|---|
| 变量 / 函数 | 小驼峰 | userId |
| 常量 | 大写下划线 | USER_ID |
| 文件夹 / 文件 | 中划线 | user-id.ts |
| Class | 大驼峰 | UserService |
| 组件 | 大驼峰 | UserCard |
| ts interface | I + 大驼峰 | IUserProps |
| ts enum | E + 大驼峰 | EDirection |
| ts type | T + 大驼峰 | TResponse |
项目结构
src
├─ assets # 静态资源(图片、字体、全局样式)
├─ components # 公共组件
├─ pages / containers # 页面级组件
├─ hooks # 自定义 hooks
├─ utils # 工具函数
├─ services / api # 接口请求
├─ store # 状态管理
├─ router # 路由配置
├─ types # 全局类型
├─ config # 环境配置
├─ styles # 全局样式、变量
├─ App.tsx
└─ main.tsx
环境配置
| 环境 | 用途 | 触发 |
|---|---|---|
| DEV | 本地开发 | pnpm dev |
| UAT | 测试联调 | merge to develop |
| STAGING | 预发 | merge to release/* |
| PROD | 线上 | git tag |
实现上用
cross-env+ 环境变量,或用.env.[mode]文件(Vite)。
路由约定
- 全部使用懒加载
meta字段统一:title / icon / roles / keepAlive / hideInMenu- 根路由
/走 Layout,子路由嵌套
数据管理
- 全局共享数据(用户、全局配置)→ store
- 页面级数据 → useState / useReducer
- 服务端数据 → useRequest(ahooks)/ react-query
接口调用
三层结构(详细实现参考 请求函数封装):
axios.create 基础请求 → api 业务封装 → useRequest 业务消费
提交规范
参考 统一编码规范 + GitWorkflow。
备注
- 上述规范的详细配置参考 新建一个 react 单页面项目
- CI 配置、dockerfile 等建议通过定制脚手架自动化