# ReactTemplate **Repository Path**: jijuntech/react-template ## Basic Information - **Project Name**: ReactTemplate - **Description**: react-hook 模板 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-16 - **Last Updated**: 2022-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EP-web launch this app with [vite][vite_site] ## Feature ### project structure ### docs > 文档目录 ### src - `apis` 接口文件夹 [点击查看](#apis) > 定义业务中使用的`restful`接口,以服务端路由或业务划分文件`foo.ts` > 注意在`index.ts`中 **注册** > 与 `utils/request.ts`配合使用 - `app` 项目入口组件/主容器 - `assets` 静态资源文件夹 [点击查看](#assets) - `components` 公共组件文件夹 [点击查看](#components) > 欢迎同学们积极抽象、封装 - `configs` 项目配置参数文件夹,网站页面的参数配置 [点击查看](#configs) > 尽可能参数提取出来,关键功能开关化 - `constants` 常量文件夹 [点击查看](#constants) > 项目中使用到的常量,如枚举类型、映射关系等 - `core` 数据仓库文件夹[点击查看](#core) > 以页面/业务划分文件 - `hooks` 自定义钩子函数文件夹[点击查看](#hooks) - `locales` 国际化字条文件夹[点击查看](#locales) - `mocks` 模拟数据文件夹[点击查看](#mocks) - `models` 数据模型文件夹[点击查看](#models) > 页面中使用到的通常与业务相关的数据模型 - `pages` 按页面路由划分的页面文件夹[点击查看](#pages) - `routers` 路由配置文件夹 > 项目主/子路由必须在此处配置,禁止散落在文件中 - `typing` 类型定义文件夹 > typings.d.ts 中定义全局方法 - `utils` 公共方法文件夹[点击查看](#pages) > 一般在 index.ts 中维护,如有必要以使用功能划分独立文件 ## Dev Guidance ###
apis
- 对象定义格式:以 `api`开头,其次方法名称,最后根据服务端`url`地址自己命名,以小驼峰格式命名 - 在定义好的请求方法内写上`url`和`method` - 最后在`index.ts`里面引入 - 例如: ``` export default { apiPostSomething: { url: '/someRouter/somethingApi', method: 'post', }, }; ``` ###assets
- `assets/images` 项目中使用的图片文件 - `assets/styles` 项目中使用的公共样式 ###components
- 文件夹必须首字母大写 - 每个文件夹下面都会由`index.ts`和`index.module.less`组成 - `index.ts` - 首先`import`第三方库 - 其次`import`自己的本地文件 - 最后`import`静态资源 - 如果`function`里面有参数,必须写泛型 - `index.module.less` 定义样式 ###configs
- 小驼峰命名 - 例如: - `textAreaMaximum` 文本最长长度 500 - `uploadImageMaxCount` 单次上传图片最多 5 张 ###constants
- 枚举了一些变量,例如: - `MenuActiveKeyTypes` 类型 - `MenuActiveKeyTitles` 标题 ###core
- 每一个页面有自己独立的`store` - 最后在`RootStore.ts`里面引入 ###hooks
- 自定义的钩子函数,例如节流函数 ###locales
- `en-US.ts`英语 - `zh-CN.ts`中文 - 页面不要出现中文,统一在这里定义 ###mocks
- 定义组件自己的后台模拟 - 在 `_db.ts` 引入 ###models
- 定义自己组件内部的状态 ###pages
- `Forbidden` 403 - 每个页面有自己的`index.module.less`,里面放各自的样式 ###utils
- `common.ts`--`getVariableType`类型检查 ### Page structure - 引入`react`等的公共库写在最上方 - 其次引入一些第三方库或者自定义组件,根据优先级引入 - 最后引入样式 - 公共库、第三方库或者自定义组件与相对路径资源之间建议使用空行分隔 ### Function component specification - `props` 解构 - 用到的 `hooks` - 业务代码 - 导出 ### Git commit specification - `init` 创建 - `feat` 迭代 - `fix` 修改 bug - `docs` 添加/修改注释 - `style` 添加/修改样式 - `refactor` 重构/修改基础件 - `test` 添加/修改测试用例 - `solve` 解决冲突 - `revert` 回滚 - 指令后不要加空格 - 提交代码不要存在没必要的代码注释,特定方法可以添加说明注释。 ### main - `react` - `typescript` - `less` - `vite` - `tslint` - `stylelint` - `commitlint` - `prettier` #### initial - `react@17.0.2` - `typescript@4.4.3` - `less@4.1.1` - `vite@2.5.10` - `prettier@2.4.11` #### dev ops - `husky` - `commitlint` - `lint-staged` ## Scripts 1. `yarn start` 启动 2. `yarn build` 编译 - `yarn build:analysis` 在`.cache/visualizer/stats.html` 中生成打包文件分析页面 3. `yarn lint` 语法检查 4. `yarn staging` 预编译 ≈ 编译 ## Tips 1. 在开发期间 `Vite` 是一个服务器,而 `index.html` 是该 `Vite` 项目的入口文件 - `Vite` 将 `index.html` 视为源码和模块图的一部分 - 与静态 `HTTP` 服务器类似,`Vite` 也有 “根目录” 的概念,即服务文件的位置,在接下来的文档中你将看到它会以 `