/react-h5

Primary LanguageTypeScript

简介

react-web 是一个免费开源的 web 模版。使用了最新的react,vite3,TypeScript等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。

特性

  • 最新技术栈:使用 react/vite3 等前端前沿技术开发
  • TypeScript: 应用程序级 JavaScript 的语言
  • uncoss:原子化 CSS

准备

准备

    1. 安装 pnpm
      npm install pnpm -g
    
    1. vscode 安装 unocss 和 windicss intellisense,iconify intellisense
    1. 安装 commitizen
      pnpm add commitizen -g
    可以使用命令 `npm run commit`
    
    1. 多项目配置 commander - config.json 配置项目名字, 执行cmd:r刷新配置在 routers - utils - getRouter.ts,根据项目名配置加载路由
      switch (__PRO_NAME__) {
        case 'test1':
          components = import.meta.glob(`../modules/test1/*.tsx`);
          break;
        default:
          components = import.meta.glob(`../modules/*.tsx`);
          break;
      }

安装使用

  • 获取项目代码
https://github.com/weizheng1992/react-h5.git
  • 安装依赖
cd react-h5

pnpm install
  • 运行多项目某个项目
  pnpm start
  • 默认启动
  pnpm dev
  • 打包
pnpm build
  • 多项目打包
pnpm cmd

Pull Request:

  1. 创建自己的分支: git checkout -b feat/xxxx
  2. 提交你的修改: git commit -am 'feat(function): add xxxxx'
  3. 推送您的分支: git push origin feat/xxxx
  4. 提交pull request

Git 提交规范

  • 参考 vue 规范 (Angular)

    • feat 增加新功能
    • fix 修复问题/BUG
    • style 代码风格相关无影响运行结果的
    • perf 优化/性能提升
    • refactor 重构
    • revert 撤销修改
    • test 测试相关
    • docs 文档/注释
    • chore 依赖更新/脚手架配置修改等
    • workflow 工作流改进
    • ci 持续集成
    • types 类型定义文件更改
    • wip 开发中

目录结构

├── README.md
├── build
│   ├── commander              # 多项目命令
│   ├── plugin
│   ├── proxy.ts
│   └── utils.ts
├── src
│   ├── App.tsx
│   ├── api                    # api接口管理
│   ├── assets                 # 静态文件
│   ├── components             # 公共组件
│   ├── enums                  # 常量
│   ├── hooks                  # 常用 Hooks
│   ├── main.tsx
│   ├── pages                  # 所有页面
│   ├── routers                # 路由管理
│   ├── style                  # 公共样式
│   ├── utils                  # 公共组件
│   └── vite-env.d.ts
├── tsconfig.json
├── unocss.config.ts
└── vite.config.ts

components

  • SVG

    import Icon from '/@/components/icon/Icon.vue';
    import SvgIcon from '/@/components/icon/SvgIcon.vue';
    
    <Icon icon="ion:log-out" :size="30" />
    <SvgIcon name="schedule" size="32" />