React+AntD 后台管理系统解决方案 -- 终极版

139

react-admin(尝试一下)

react-admin system solution

logo

travis-ci
PRs Welcome

文档地址:wiki

问题和方案汇总:issue

更新日志迁移至CHANGELOG.md😁(重要!对于了解项目部分功能和代码很有用!)

cli 命令行脚手架安装和使用 react-admin 🔥

使用 react-admin-creator 快速安装和下载 react-admin 模板来开发项目:

npm i -g react-admin-creator

react-admin-creator myapp

前言

网上react后台管理开源免费的完整版项目比较少,所以利用空余时间集成了一个版本出来,已放到GitHub
启动和打包的时间都稍长,请耐心等待两分钟

依赖模块

<span style="color: rgb(184,49,47);">项目是用create-react-app创建的,主要还是列出新加的功能依赖包</span>

<span style="color: rgb(184,49,47);">点击名称可跳转相关网站😄😄</span>

  • react
  • react-router(<span style="color: rgb(243,121,52);">react路由,4.x的版本,如果还使用3.x的版本,请切换分支(ps:分支不再维护)</span>)
  • redux(基础用法,但是封装了通用action和reducer,demo中主要用于权限控制(ps:目前可以用16.x的context api代替),可以简单了解下)
  • antd(<span style="color: rgb(243,121,52);">蚂蚁金服开源的react ui组件框架</span>)
  • axios(<span style="color: rgb(243,121,52);">http请求模块,可用于前端任何场景,很强大👍</span>)
  • echarts-for-react(<span style="color: rgb(243,121,52);">可视化图表,别人基于react对echarts的封装,足够用了</span>)
  • recharts(<span style="color: rgb(243,121,52);">另一个基于react封装的图表,个人觉得是没有echarts好用</span>)
  • nprogress(<span style="color: rgb(243,121,52);">顶部加载条,蛮好用👍</span>)
  • react-draft-wysiwyg(<span style="color: rgb(243,121,52);">别人基于react的富文本封装,如果找到其他更好的可以替换</span>)
  • react-draggable(<span style="color: rgb(243,121,52);">拖拽模块,找了个简单版的</span>)
  • screenfull(<span style="color: rgb(243,121,52);">全屏插件</span>)
  • photoswipe(<span style="color: rgb(243,121,52);">图片弹层查看插件,不依赖jQuery,还是蛮好用👍</span>)
  • animate.css(<span style="color: rgb(243,121,52);">css动画库</span>)
  • react-loadable(代码拆分,按需加载,预加载,样样都行,具体见其文档,推荐使用)
  • redux-alita 极简的redux2react工具
  • 其他小细节省略

功能模块

<span style="color: rgb(184,49,47);">备注:项目只引入了ant-design的部分组件,其他的组件antd官网有源码,可以直接复制到项目中使用,后续有时间补上全部组件。</span>

<span style="color: rgb(184,49,47);">项目使用了antd的自定义主题功能-->黑色,若想替换其他颜色,具体操作请查看antd官网</span>
<!--more-->

  • 首页

    • 完整布局
    • 换肤(全局功能,暂时只实现了顶部导航的换肤,后续加上其他模块)
  • 导航菜单

    • 顶部导航(菜单伸缩,全屏功能)
    • 左边菜单(增加滚动条以及适配路由的active操作)
  • UI模块

    • 按钮(antd组件)
    • 图标(antd组件并增加彩色表情符)
    • 加载中(antd组件并增加顶部加载条)
    • 通知提醒框(antd组件)
    • 标签页(antd组件)
    • 轮播图(ant动效组件)
    • 富文本
    • 拖拽
    • 画廊
  • 动画

    • 基础动画(animate.css所有动画)
    • 动画案例
  • 表格

    • 基础表格(antd组件)
    • 高级表格(antd组件)
    • 异步表格(数据来自掘金酱的接口)
  • 表单

    • 基础表单(antd组件)
  • 图表

    • echarts图表
    • recharts图表
  • 页面

    • 登录页面(包括GitHub第三方登录)
    • 404页面

功能截图

首页

截图

按钮图标等

截图

轮播图

截图

富文本

截图

拖拽

截图

画廊

截图

动画

截图

表格

截图

表单

截图

图表

截图

页面

截图

菜单拖拽

截图

代码目录

+-- build/                                  ---打包的文件目录
+-- config/                                 ---npm run eject 后的配置文件目录
+-- node_modules/                           ---npm下载文件目录
+-- public/
|   --- index.html                            ---首页入口html文件
|   --- npm.json                            ---echarts测试数据
|   --- weibo.json                            ---echarts测试数据
+-- src/                                    ---核心代码目录
|   +-- axios                               ---http请求存放目录
|   |    --- index.js
|   +-- components                          ---各式各样的组件存放目录
|   |    +-- animation                      ---动画组件
|   |    |    --- ...
|   |    +-- charts                         ---图表组件
|   |    |    --- ...
|   |    +-- dashboard                      ---首页组件
|   |    |    --- ...
|   |    +-- forms                          ---表单组件
|   |    |    --- ...
|   |    +-- pages                          ---页面组件
|   |    |    --- ...
|   |    +-- tables                         ---表格组件
|   |    |    --- ...
|   |    +-- ui                             ---ui组件
|   |    |    --- ...
|   |    --- BreadcrumbCustom.jsx           ---面包屑组件
|   |    --- HeaderCustom.jsx               ---顶部导航组件
|   |    --- Page.jsx                       ---页面容器
|   |    --- SiderCustom.jsx                ---左边菜单组件
|   +-- style                               ---项目的样式存放目录,主要采用less编写
|   +-- utils                               ---工具文件存放目录
|   --- App.js                              ---组件入口文件
|   --- index.js                            ---项目的整体js入口文件,包括路由配置等
--- .env                                    ---启动项目自定义端口配置文件
--- .eslintrc                               ---自定义eslint配置文件,包括增加的react jsx语法限制
--- package.json

安装运行

1.下载或克隆项目源码
2.yarn 或者 npm安装相关包文件(首先推荐使用yarn,国内建议增加淘宝镜像源,不然很慢,你懂的😁)
有些老铁遇到运行时报错,首先确定下是不是最新稳定版的nodejs和npm或者yarn(推荐用yarn),切记不要用cnpn
// 首推荐使用yarn装包
yarn or npm i
3.启动项目
yarn start or npm start
4.打包项目
yarn build or npm run build

Q&A(点击问题查看答案)

1.create-react-app 打包项目run build 增加进度条信息?

2.接口跨域了,怎么在本地开发时配置代理?

3.在使用hashRouter的情况下怎么实现类似锚点跳转?

4.怎么添加多页面配置?

5.路由传参数接问号怎么传?

6.如何兼容IE浏览器?

结尾

该项目会不定时更新,后续时间会添加更多的模块

欢迎和感谢大家PR~~👏👏

若有问题,可加QQ群与我交流

  • 1群:264591039(已满)
  • 2群:592688854(已满)
  • 3群:743490497 (已满)
  • 4群:150131600

如果对你有帮助,给个star哟~~❤️❤️❤️❤️


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

20 条评论
前端中代码最骚的 · 2017年05月31日

这个,挺好看的。不错!

回复

donkey · 2017年08月01日

请问这个怎么和KOA相连

回复

秋天不回来了 · 2017年08月25日

我想问一下,我在一个表单里面同事设置编辑和删除功能,怎么修改代码啊?我自己没有尝试出来

回复

0

可以去查阅下 antd的表单组件,再结合一些逻辑代码,应该比较简单的

kira 作者 · 2017年10月17日
369280 · 2017年10月09日

赞一个,不过NProgress是没有用吗?

回复

0

恩,没有用,只做了一个demo。

kira 作者 · 2017年10月17日
王振宁 · 2017年10月11日

您好 不知道您有没有录制视频,想学习学习,非常感谢!

回复

0

没有视频哦,如果有不懂的可以加群问我

kira 作者 · 2017年10月17日
大兵 · 2017年10月15日

厉害

回复

Denton · 2017年11月14日

大神,你的群满员了,加不了

回复

feifei · 2018年01月12日

厉害了大神

回复

捡男孩的贝壳 · 2018年01月30日

厉害,膜拜大神

回复

夜猫子 · 2018年03月12日

我把项目拉取下来报错了! 运行不起最新版。。。。
G:githubreactreact-antdreact-admin>npm run build

demo@0.1.0 build G:githubreactreact-antdreact-admin
node scripts/build.js

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'echarts' in 'G:githubreactreact-antdreact-adminsrccomponentscharts'

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! demo@0.1.0 build: node scripts/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the demo@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:UsersAdministratorAppDataRoamingnpm-cache_logs2018-03-12T08_02_48_160Z-debug.log

回复

codeleey · 2018年04月11日

彩色图标怎么加上的, 为啥我的都是黑白的

回复

馍馍 · 2018年06月07日

有没有菜单是动态加载出来的喃?根据权限

回复

往日随风 · 2018年11月13日

楼主有没有与后台代码结合的案例啊 例如:c# + react + antd,java+vue之类的结构的项目

回复

boyka · 2018年11月15日

大佬,大佬,为什么项目本地跑的时候,chrome、firefox正常、qq等浏览器看正常,用IE和2345浏览器看不了,再你的那个演示环境这几个浏览器都可以了呢,

回复

0

antd 只支持ie9 以上的版本

小胡同 · 2月18日
心跳 · 3月14日

楼主,能不能写一些关于登陆功能的博客?

回复

lionxrabbit · 9月5日

你好

回复

载入中...