# react-ant-admin
**Repository Path**: jingyucloud2020/react-ant-admin
## Basic Information
- **Project Name**: react-ant-admin
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-04-10
- **Last Updated**: 2021-04-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
React Ant Admin
开箱即用的中台前端/设计解决方案
- 预览:https://www.landluck.com.cn/web/react-ant-admin
#### 介绍
最开始的时候,我需要一个 `react` 开发的 `amdin` 模版,在开源社区寻找了一边之后,比较中意 `ant design pro` 的 `UI`,当我一堆操作把 `ant desgin pro` 的代码拉下来研究之后,发现内容是在太多了,除了 `react`、`redux` 之外,还包含了 `umi`、`dva`、`ant-design/pro-layout` 等其它东西,当这些概念和 `ts` 结合起来使用的时候,我瞬间感觉无处下手,后面又仔细了阅读了权限设计、菜单栏渲染部分的代码,我得出结论, `Ant Design Pro` 足够优秀,但不适合我的需求场景。很遗憾,只能放弃使用
但是,`Ant Design Pro` 的 `UI` 是我见过的 `react` `admin` 系统中最为好看的一个,颜值即正义,既然我无法放弃 `Ant Design Pro` 的 `UI`,那干脆模仿 `Ant Design Pro` 的 `UI`,自己来实现一个较为简单的版本
#### 规划
- 从零使用 `react` 搭建系统
- 全面使用 `react-hooks` 开发,抛弃 `class` 组件写法、所有组件异步加载,提高首屏渲染速度
- 动态权限设计,开发配套的后端 Api
- ...
#### 使用技术
- **UI 框架**: `react`、`react-hook`、`classnames`
- **UI 组件**: `antd`、`@ant-design/aliyun-theme`
- **数据管理**:`redux`、`react-redux`、`redux-thunk`、`redux-logger`
- **类型检查**:`typescript`
- **接口请求**:`axios`
- **cookies**:`js-cookie`
- **过渡动画**:`react-transition-group`
- **CSS 规则**:`BEM`
- **后端 API**:`nodejs`、`eggjs`、`ts`、`mysql`、`sequelize`
#### 菜单
```js
-首页介绍 - 系统介绍 - 权限管理 - 用户管理 - 角色管理 - 菜单管理;
```
#### 使用
```bash
$ git clone https://github.com/landluck/react-ant-admin.git
$ cd react-ant-admin
$ npm install
$ npm start
```
#### 文件说明
```js
.
├── README.md
├── package-lock.json
├── package.json
├── src
│ ├── App.test.tsx
│ ├── App.tsx
│ ├── api
│ │ ├── request.ts // Axios 请求统一封装
│ │ └── requestMd.ts // md 单独使用的 axios 实例
│ ├── components // 系统组建和业务无关
│ │ ├── Breadcrumb // 面包屑导航
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── Hamburger // 菜单栏开关
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── HeaderSearch // 头部搜索
│ │ │ └── index.tsx
│ │ ├── LayoutHeader // 系统头部
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── LayoutNavBar // 系统头部右侧内容
│ │ │ ├── AvatarDropdown.tsx
│ │ │ ├── NavBarItem.tsx
│ │ │ ├── NavDropdown.tsx
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── LayoutSettings // 系统设置
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── LayoutSideBar // 侧边栏导航
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── NoticeIcon // 消息通知
│ │ │ ├── NoticeTab.less
│ │ │ ├── NoticeTab.tsx
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── SideMenu // 菜单栏
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── SidebarLogo // 菜单栏logo
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ └── TransitionMain // 主体内容过度
│ │ └── index.tsx
│ ├── hooks // 自定义 react-hook
│ │ └── count.ts
│ ├── index.tsx
│ ├── layout
│ │ ├── AsyncRoutes.tsx // 负责异步路由请求和渲染
│ │ ├── Auth.tsx // 权限校验
│ │ ├── MainRoutes.tsx // 业务路由渲染
│ │ ├── UserLayout.less // 系统用户路由渲染
│ │ ├── UserLayout.tsx
│ │ ├── index.less
│ │ └── index.tsx // 系统主要layout
│ ├── react-app-env.d.ts
│ ├── router
│ │ ├── config.ts // 项目的路由配置
│ │ └── utils.ts // 路由相关的一些 utils
│ ├── serviceWorker.ts
│ ├── store // redux
│ │ ├── index.ts
│ │ ├── module
│ │ │ ├── app.ts
│ │ │ ├── notice.ts
│ │ │ ├── settings.ts
│ │ │ └── user.ts
│ │ └── types.ts
│ ├── styles // 基本公用的样式
│ │ ├── index.less
│ │ ├── md.css
│ │ └── var.less
│ ├── typings // 类型申明
│ │ ├── global.d.ts
│ │ └── index.ts
│ ├── utils // 工具类
│ │ ├── cookie.ts
│ │ ├── store.ts
│ │ └── verifty.ts
│ └── views // 视图
│ ├── auth
│ │ ├── menu
│ │ │ ├── AddOrEditMenu.tsx
│ │ │ ├── index.tsx
│ │ │ └── service.ts
│ │ ├── role
│ │ │ ├── AddOrEdit.tsx
│ │ │ ├── editMenu.tsx
│ │ │ ├── index.tsx
│ │ │ └── service.ts
│ │ └── user
│ │ ├── AddOrEdit.tsx
│ │ ├── index.tsx
│ │ └── service.ts
│ ├── components
│ │ ├── BaseTable.tsx
│ │ ├── PageWrap.tsx
│ │ ├── SearchForm.tsx
│ │ └── index.less
│ ├── dashborad
│ │ └── intro
│ │ ├── index.tsx
│ │ └── intro.md
│ ├── error
│ │ ├── 403.tsx
│ │ └── 404.tsx
│ └── system
│ ├── component
│ │ ├── FormItem.tsx
│ │ ├── FormWrap.tsx
│ │ └── LoginItem.tsx
│ ├── login
│ │ ├── index.less
│ │ ├── index.tsx
│ │ └── service.ts
│ ├── recoveryPwd
│ │ ├── index.tsx
│ │ └── service.ts
│ ├── register
│ │ ├── index.tsx
│ │ └── service.ts
│ └── registerResult
│ └── index.tsx
└── tsconfig.json
37 directories, 89 files
```
#### 支持环境
现代浏览器及 IE11