React-Better-Admin 是一个基于 React 18、TypeScript、Ant Design v5.x 、React Router v6.x、Vite4、Redux、Redux Toolkit、RTK Query 开发的后台 UI 系统。
React-Better-Admin 特点
- 1、基于 TypeScript 🔥🔥🔥
- 2、基于最新的 React 18 🔥🔥🔥
- 3、基于最流行的设计风格 Ant Design v5.x 🔥🔥
- 4、基于 React Router v6.x 做路由管理,支持懒加载 🔥🔥
- 5、基于 Vite4 做项目编译打包工具 🔥🔥
- 6、基于 Redux、Redux Toolkit 做状态管理 🔥🔥
- 7、基于 RTK Query 请求管理 👍
- 8、完善的 国际化 配置支持 👍
- 9、完善的 登录认证 配置支持 👍
- 10、完善的 权限管理 + 动态菜单 配置支持 👍
- 11、完善的 Mock 数据支持
- 12、友好的代码风格和注释...
- 13、基于 MIT 开源协议,放心商用,永久免费 👍👍👍
- 14、更多小惊喜...
当前规划和进度
- ✅ 登录认证于退出
- ✅ 权限管理,当前用户的权限来源于服务器的配置
- ✅ 权限管理,自定是否拥有权限的 hook
- ✅ 统一的路由和菜单配置
- ✅ 中英文多语言切换 【 功能已完成,但某些按钮和地方未配置】
- ✅ RTK Query 请求拦截,所有请求自动添加 JWT 内容.
- ✅ 高阶组件:DictSelect (能够根据服务器数据字典自动设置下拉数据)
- 高阶组件:CrudPage(通过配置自动生成 增删改查 的组件)
为什么不用 Ant Design Pro
Ant Design Pro 是 Ant Design 官方推出的非常优秀的、开箱即用的、中台前端解决方案,而 React-Better-Admin 也是向 Ant Design Pro 学习,对标 Ant Design Pro,打造 "另一套" 优秀的、开箱即用的、中台前端解决方案。
为什么不直接用 Ant Design Pro ,而全新开发 React-Better-Admin 呢? 我们团队主要认为有以下几个原因:
-
1、Ant Design Pro 是基于阿里自己的 Umi 进行开发的,我们团队不熟悉 Umi ,并且 Umi 并不像 Redux、Vite4、React Router 那么流行(不给出数据了)。
-
2、Umi 自己包含了代码构建、测试、路由、状态管理等能力,它既是一个打包工具、也是一个运行时依赖框架,从用户需求角度来讲: Umi = Vite4 + React Router + Redux + RTK Query (或者 Axios 等)。但是,在 React 的生态中,我们除了使用 React 来构建 web 产品以外,还可能通过 React-Native 来构建 app 应用,在这方面: React Router、Redux 都是支持非常友好,而 Umi 视乎没有太多案例。
-
3、我们(包括用户)基于 React-Better-Admin 开发出的商业产品进行销售的时候,客户公司的 ”技术架构师“ 往往有很重话语权,而纵观整个互联网,使用 "React Router + Redux" 的架构师,好像要比 Umi 多一些。
但无论如何,Ant Design Pro 非常优秀,我们努力向它靠齐。
开始使用
Clone
git clone https://gitee.com/better-admin/react-better-admin.git
Install
cd react-better-admin npm install
Run
vite
Build
# 开发环境 npm run build:dev # 测试环境 npm run build:test # 生产环境 npm run build:pro
目录结构
. ├── docs # 文档内容 ├── mock │ └── api.mock.ts # 开发环境的 Mock 数据定义 ├── public # 静态资源文件目录 ├── src │ ├── apis # API 定义目录 │ ├── assets # 资源文件 │ ├── components # 通用组件定义 │ ├── context # React Context │ ├── hooks # React 自定义 Hook │ ├── layout # 布局文件以及布局涉及的组件 │ ├── locales # 国际化语言定义 │ ├── pages # 页面文件夹 │ ├── routers # 路由和菜单的定义 │ ├── store # redux store 定义 │ ├── App.tsx # React 运行入口文件 │ ├── main.tsx # 入口文件 │ └── vite-env.d.ts # Vite 声明文件 ├── index.html # 应用运行入口文件 ├── LICENSE # 授权文件(MIT) ├── package-lock.json # 依赖包版本锁定文件 ├── package.json # NPM 管理 ├── readme.md ├── tsconfig.json # TypeScript 配置文件 ├── tsconfig.node.json ├── vite.config.ts # Vite 配置文件
常见问题
问题1:新建的页面显示没有权限?
答:原因是整个系统添加了权限管理,用户只能访问有权限的页面,新添加的页面没有给当前用户分配权限,需要在
mock/api.mock.ts
文件中的/api/account/permissions
里,添加新创建的页面对应的 URL(路由)地址。
进一步了解:https://gitee.com/better-admin/react-better-admin
还没有评论,来说两句吧...