看了网上不少基于React+Ant Design后台管理系统解决方案,我的感受有些太重,整合了太多东西进去,例如富文本组件,markdown,Echarts,甚至还有AntD表格的使用demo......javascript
或许你只想要一个拿来就能用,除了修改项目名称,而不须要修改太多地方的简单模版。css
注意:本项目使用 react-app-rewired 和 customize-cra 来重写配置,并未eject,因此若是你要修改配置你只须要修改跟目录下config-overrides.js文件里的代码便可。前端
作一个后台管理系统,可能你只须要整合一些基本的:java
1. react router v4路由,实现按需加载,鉴权。
2. axios,基本封装。
3. mockjs,实现拦截ajax响应模拟数据。
4. react-intl国际化。
5. mobx集成。
6. 登陆页面。
7. 管理页面Layout(动态侧边导航栏,头部导航栏,面包屑导航,和主体)。
8. 按需加载AntD,可用less文件定制主题。
9. 集成decorators,开发可以使用装饰器。
复制代码
那么可能这个项目更适合你:shx996/react-antd-admin。react
本项目登陆页面和loader组件是借鉴了github社区zuiidea/antd-admin,该项目仍是很优秀的,只不过它基于阿里的dvajs开发,而且整合了全部经常使用的demo。ios
写这个项目初衷主要是为了本身日后开发项目作备用,过程其实不复杂,主要是每次整合都很麻烦。git
v react-antd-admin
> public
v src
v components
> Layout // 布局组件
> Loader // 加载组件
index.js // 导出
> locales // 国际化
> pages // 页面
> routes // 路由
> service // api服务,包括mock
api.js
mock.js
> stores // mobx
> styles // 全局样式(antd主题定制)
v utils // 封装的工具
config.js // 全局配置
loading.js // 基于js方式调用的加载插件
request.js // 简单封装axios
tools.js // 经常使用函数工具
App.js
App.less
App.test.js
index.js
Main.js
serviceWorker.js
.gitignore
config-overrides.js // 重写项目默认配置
LICENSE
package.json
README.md
yarn.lock
复制代码
灵活,简单,尽可能不写一句多余代码。github
非组件方式调用loadingajax
import loading from '../utils/loading'
loading.show()
loading.hide()
复制代码
发送一个http请求json
/** * Api是全局变量 * App.js -> global.Api = api */
const form = {username: 'guest', password: 'guest'}
Api.login(form)
// mock模拟,默认false
Api.login(form, {mock: true})
// loading关闭,默认true
Api.login(form, {loading: false})
// 或者在封装的时候能够作统一默认
export default {
login: (data, config) => request.post('login', {data, loading: false, ...config})
}
复制代码
请求数据能够放到组件中的state,若是喜欢分离,能够放到mobx(或者redux,本项目没有集成,可是很容易集成。感受mobx开启严格模式,是能够胜任大部分项目,用得好很差呢看我的和团队)。
本项目对以module.less结尾文件开启了css-modules(非以这个结尾的不受影响),默认使用的也是less,使用方式为
:global {
.test-global {
font-size: 12px;
}
}
.test {
color: #1890ff;
}
.test-name {
font-size: 14px;
}
复制代码
import styles from './Dashboard.module.less'
// 浏览器或许会生成 class="test-global Dashboard_test__1E0aO"
<span className={`test-global ${styles.test}`}></span>
<span className={styles['test-name']}></span>
复制代码
若是你用的是Sass或者是Stylus等等,一样你须要修改 config-overrides.js文件
若是能帮助你,那最好。
欢迎加入Vue/React 前端技术群,一块儿探讨前端开发。
END