React+AntD後台管理系統解決方案(補)

ps: 之前發的那篇不知道莫名的消失了,真坑爹!重新補上!

補充:改項目用到的框架和技術點:react+react-router+redux+antd+webpack等。

不僅是後台系統,有些設計和理念也適合前台頁面,比如許可權管理,響應式布局等。

源博客地址:點我查看

源碼地址:github.com/yezihaohao/r

最下方增加版本更新日誌??

前言

網上react後台管理開源免費的完整版項目比較少,所以利用空餘時間集成了一個版本出來,已放到GitHub

啟動和打包的時間都稍長,請耐心等待兩分鐘

  • GitHub地址
  • 預覽地址(已增加響應式,可手機預覽??)

依賴模塊

項目是用create-react-app創建的,主要還是列出新加的功能依賴包

點擊名稱可跳轉相關網站????

  • react@15.5.0
  • react-router@3.0.2(react路由,4.x的差異還是比較大,暫時還是3.x的版本)
  • antd@2.9.3(螞蟻金服開源的react ui組件框架)
  • axios@0.16.1(http請求模塊,可用於前端任何場景,很強大??)
  • echarts-for-react@1.2.0(可視化圖表,別人基於react對echarts的封裝,足夠用了)
  • recharts@0.22.3(另一個基於react封裝的圖表,個人覺得是沒有echarts好用)
  • nprogress@0.2.0(頂部載入條,蠻好用??)
  • react-draft-wysiwyg@1.9.6(別人基於react的富文本封裝,如果找到其他更好的可以替換)
  • react-draggable@2.2.4(拖拽模塊,找了個簡單版的)
  • screenfull@3.2.0(全屏插件)
  • photoswipe@4.1.2(圖片彈層查看插件,不依賴jQuery,還是蠻好用??)
  • animate.css@3.5.1(css動畫庫)
  • 其他小細節省略

功能模塊

備註:項目只引入了ant-design的部分組件,其他的組件antd官網有源碼,可以直接複製到項目中使用,後續有時間補上全部組件。 項目使用了antd的自定義主題功能–>黑色,若想替換其他顏色,具體操作請查看antd官網

  • 首頁
    • 完整布局
    • 換膚(全局功能,暫時只實現了頂部導航的換膚,後續加上其他模塊)
  • 導航菜單
    • 頂部導航(菜單伸縮,全屏功能)
    • 左邊菜單(增加滾動條以及適配路由的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.npm安裝相關包文件(國內建議增加淘寶鏡像源,不然很慢,你懂的??)或者用yarn

npm i

3.啟動項目

npm start

4.打包項目

npm run build

更新日誌

2017-07-08

  • 依賴包版本升級
    • react@15.6.1
    • antd@2.11.2
    • webpack@2.6.1
    • 等等

2017-08-01

  • 引入redux系列
    • redux@3.7.2
    • redux-thunk@2.2.0
    • react-redux@5.0.5
  • 增加許可權管理模塊
    • 使用easy-mock模擬數據模擬登錄介面
    • 使用redux系列將登錄用戶數據傳遞給許可權組件
    • 許可權組件採用Render Callback的方式傳遞許可權給需要受控制的組件(具體做法請查看源代碼。)
    • 用戶狀態保存在localStorage中
    • 具體做法請運行項目查看
    • PS:以上管理許可權只是一種方式,但這絕對不是唯一的方式,也不是最好的方式。如果你有更好的方式,不妨加上面的群和大家一起分享下。????
  • 增加路徑別名
    • 使用@別名處理引入組件相對路徑過長問題。
    • 缺點:編輯器不能使用快捷提示和快捷跳轉到相應的文件

2017-08-13

許可權管理模塊增加頁面跳轉許可權驗證

  • 點擊許可權管理的路由攔截,若沒有訪問許可權則會跳轉到404頁面。
  • 大致實現方式(非常簡單):通過向自定義router組件傳入store,登錄之後可獲取到redux中的許可權state數據,並通過判斷是否包含許可權進行跳轉。ps: 該demo的效果是管理員登錄之後才能跳轉到路由攔截頁面。具體操作請拉取代碼嘗試

2017-08-26

增加響應式布局

  • 替換antd Col 組件的響應式柵格為md(具體參數用法請查看antd官方文檔)
  • 初始化頁面是獲取當前瀏覽器寬度設置菜單顯示類型
  • 監聽window的onresize函數,設置菜單顯示類型。PS:瀏覽器寬度存入redux中,方便組件之間傳遞

結尾

該項目會不定時更新,後續時間會添加更多的模塊

若有問題,可加QQ群264591039與我交流

如果對你有幫助,給個star喲~~????????


推薦閱讀:

【React/Redux/Router/Immutable】React最佳實踐的正確食用姿勢
如何在非 React 項目中使用 Redux
揭秘 React 狀態管理
Redux store 的動態注入

TAG:React | Redux | AntDesign |