Skip to content

react scaffold,不一定适合你,菜单那边做了特殊处理

Notifications You must be signed in to change notification settings

MyCupOfTeaOo/react-scaffold

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0d9665c · Mar 15, 2021

History

98 Commits
Aug 6, 2020
Jun 11, 2020
May 19, 2020
Mar 15, 2021
May 21, 2020
May 8, 2020
Oct 23, 2020
May 8, 2020
Oct 23, 2020
May 8, 2020
Jun 3, 2020
Nov 12, 2020
Jun 1, 2020
May 8, 2020
May 8, 2020
May 25, 2020
Jul 14, 2020
Oct 23, 2020
Aug 6, 2020
May 8, 2020
May 8, 2020
Jan 26, 2021
May 21, 2020
Jul 14, 2020
Nov 6, 2020

Repository files navigation

1. react 手脚架

页面截图

2. 概述

基于 mobx + react + react router + umi +TypeScript 的 react 前端 组件库选用 antd,teaness

3. 安装与运行

安装 npm i 运行 npm run start

提交代码

遵循 https://www.conventionalcommits.org/ 也可以使用 npm run commit 来快速格式化提交

4. 构建与发布

执行 npm run release生成 tag 执行 npm run build构建 如有 sentry 启用需求,需要在项目下添加 .sentryclirc 文件,格式如下:

[defaults]
url = sentry地址
project = sentry项目名
org = sentry

[auth]
token = 授权token

4.1. 构建环境变量

  • UA google analytics,默认无(不开启 google analytics)
  • AES AES 秘钥,默认 test
  • DSN sentry DNS,默认无(不开启 sentry)

4.2. 其他环境变量

可以建一个 .env.local 覆盖 umi 环境变量

具体参考umi 环境变量

5. 项目结构

5.1. 目录结构

├─config 项目配置目录
│  ├─pages.ts 页面与菜单id绑定
│  ├─projectConfig.ts 项目配置文件,如前缀,项目名,打包base路径等等
│  ├─proxy.ts 代理 dev环境下代理接口路径配置
│  └─route.ts 路由配置文件(除非本地路由,不然不需要动这个问题,直接去`pages.ts`绑定菜单id即可)
├─public 公共资源文件(目前只有网站ico图标)
├─src
│  ├─assets 静态的资产(图片,svg,json等等)
│  ├─block 业务组件 (与业务强关联的组件,甚至可以是一个页面)
│  ├─components 通用组件 (与业务无关的通用型组件)
│  ├─layouts 页面框架,不需要动
│  ├─pages 路由页面  改文件夹下也可以定义 Component 文件夹用来区别非页面的业务强关联非多个页面复用的组件
│  ├─service 接口(所有接口的聚合)
│  ├─stores 状态库(mobx 状态库,如果是全局状态需要在Global.ts注册)
│  ├─utils
│  │  ├─authority.ts 权限封装
│  │  ├─cache.ts 缓存封装
│  │  ├─request.ts request请求封装
│  │  ├─utils.ts 工具集
│  ├─app.ts 参考umi文档,不需要动
│  ├─constant.ts 常量
│  ├─global.scss 全局css
│  ├─typings.scss 比较重要的type定义
├─...

pages 下的 .umi,.pages.ts是自动生成的不允许动

6. 开发环境配置

vscode settings 可以配上

{
    "prettier.eslintIntegration": true,
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact",
        { "language": "javascript", "autoFix": true },
        { "language": "javascriptreact", "autoFix": true },
        { "language": "typescript", "autoFix": true },
        { "language": "typescriptreact", "autoFix": true }
    ],
}

7. 组件用例

组件库地址 外网,需翻墙加速 teaness.org 内网,隐身模式访问 teaness.org

8. 菜单动态加载组件

通过特殊的 url 标识与菜单结合 url 设计: component:{block组件}({注入的组件props})path={url路径}

例:component:AutoGenPage({"type": "cnt"})path=cnt

9. FAQ

默认是开启 mock 的,需要关闭,请创建.env.local文件,并添加 mock=none

About

react scaffold,不一定适合你,菜单那边做了特殊处理

Resources

Stars

Watchers

Forks

Packages

No packages published