一個精簡版的基于 mobx 的 Antd Design Pro:antd-pro-mobx
為什么做這個項目?
Antd Design Pro 是一個大而全悬钳,且高度封裝的腳手架,幫開發(fā)者做了很多基礎(chǔ)工作旨别,但不免提升了學(xué)習(xí)成本鸥跟, 尤其內(nèi)部依賴了dva
和umi
,限制住了開發(fā)者的同時也讓開發(fā)者失去了對 webpack 的絕對控制權(quán)喂击。所 以我利用業(yè)務(wù)時間做了這個基于mobx
的精簡版antd pro剂癌,簡化了登錄注冊流程,將dva
換成了class based 的mobx
翰绊,使代碼結(jié)構(gòu)更清晰更易組織佩谷,去掉了底層 umi,使用者可以直接控制 webpack监嗜,更靈 活谐檀,降低了學(xué)習(xí)成本,開發(fā)者可以快速上手裁奇,投入進(jìn)業(yè)務(wù)開發(fā)桐猬。且內(nèi)置了友盟統(tǒng)計,可以看到網(wǎng)站的 基本使用情況并使用高級分析刽肠,分群溃肪,畫像,推送等高級功能音五。目前已有兩家企業(yè)基于此開發(fā)并上線惫撰。
適合哪些人使用?
- 不喜歡
dva
躺涝,更喜歡用基于類的mobx
做狀態(tài)管理 - 對
umi
框架不熟悉厨钻,更想直接操作webpack - 前期不需要適配手機(jī)端,希望PC版盡快上線
相比Antd Pro坚嗜,去掉了哪些東西夯膀?
- 狀態(tài)管理從
dva
換成了mobx
- 去掉了
umi
,改成了直接操作webpack - mock改用阿里推出的 rap2
- 去掉了手機(jī)端的適配苍蔬,方便快速完成PC版
- 去掉了測試相關(guān)的東西
- 去掉了多語言相關(guān)的東西
此項目的目的是幫助開發(fā)者盡快完成PC網(wǎng)站的開發(fā)诱建,去掉的東西后期如果需要,可以參考Antd Pro 項目逐漸迭代回去碟绑。
相比Antd Pro俺猿,做了哪些改進(jìn)和補(bǔ)充?
- CSS Modules使用了react-css-modules方案蜈敢,相比css-loader的modules方案更靈活辜荠。
- 增加了異步路由,方便首頁做進(jìn)一步優(yōu)化抓狭。
- 增加了OSS上傳組件伯病,使用STS方案上傳,需要開發(fā)者自行購買資源。
- 圖表庫由
BizChart
改用了highcharts
午笛,這個算不上優(yōu)化惭蟋,但是相對于阿里外的開發(fā)者highcharts
可能更好用一些
有哪些地方可以完善?
- 登錄目前只有手機(jī)號+驗證碼直接登錄药磺,可以補(bǔ)充其他登錄方式告组,但與此同時,你還要提供注冊+密碼找回+修改密碼
- 目前路由已經(jīng)收斂進(jìn)一個組件癌佩,但還不夠集中木缝,最好可以像router3一樣集中管理(請不要問我為什么不直接用router3…,不做怎么知道后悔)
- CSS Modules使用了react-css-modules方案围辙,相比antd pro更靈活了一些我碟,但是babel-plugin-react-css-modules應(yīng)該是更好的方案,這樣css就相對于js透明了
- 分包方案:目前提供了同步路由和異步路由兩種方式姚建,歡迎這方面的大牛進(jìn)一步改進(jìn)矫俺。同時分包依賴業(yè)務(wù),針對業(yè)務(wù)應(yīng)該會有更優(yōu)的分包方案掸冤。
- 肯定還有很多我未想到或發(fā)現(xiàn)的厘托,歡迎各位大神指點并貢獻(xiàn)代碼,我會積極merge大家的pr稿湿。
主要的依賴及版本
- webpack 4
- router 4
- react 16
- mobx 5
- axios
- antd + ant-design-pro
- ali-oss 6