一个精简的React+Ant Design后台管理系统模版

看了网上不少基于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-adminreact

本项目登陆页面和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 前端技术群,一块儿探讨前端开发。

Vue/React 前端技术群

END

相关文章
相关标签/搜索