ng-alain是一個基于ng-zorro-antd的企業(yè)后臺腳手架,目標也非常簡單醋粟,希望在Angular上面開發(fā)企業(yè)后臺更簡單辆床、更快速乎莉。github地址是:cipchk/ng-alain愚屁。
一直以來對Ant Desig的理念非常喜歡,而一直出于工作的需要能夠運用的機會本不多絮重,直到 ng-zorro-antd 的出現冤寿,終于能夠在內部真正實踐。而 ng-alain 雖然時間很短青伤,但在群里很多朋友的支持下疚沐,讓其盡可能有一個比較可靠的實施。據我所知包括我們公司自己在內潮模,已經有好幾個企業(yè)開始轉移至該腳手架上面來亮蛔。
你可以非常簡單的從 github 克隆一份最新代碼,然后立即進入業(yè)務開發(fā)擎厢。
git clone --depth 1 https://github.com/cipchk/ng-alain.git
結構
ng-alain 實際是一個標準的 Angular Cli 構建的項目究流,因此對她就像是你前女友一樣,一定不會感到陌生动遭。
在此基礎上芬探,我將公共業(yè)務組件放在 shared/components
下面,且目前已經包括圖表相關有幾十個組件服務于企業(yè)后臺常見業(yè)務服務型組件厘惦。
我們在處理時間偷仿、貨幣上面頻繁極高哩簿,而提供一種非常簡潔的這類數據渲染極重要。例如:{{ time | date }}
期望結果應該:2017-11-19 04:25
酝静;而 {{ price | currenty }}
期望的結果應該是:¥303,634.13
的時候节榜,只需要這樣:{{ time | _date }}
。沒錯在 Angular 內置的管道里别智,我增加了以下劃線開頭的新管道來處理這類渲染宗苍。
以上我盡量保持一種簡潔而又有效的方式,我想這也是 Ant Design 理念之一薄榛。
樣式風格
ng-alain 有自己的一套樣式風格定義讳窟,但這些定義都是基于 Ant Desig 設計理念;例如敞恋,兩個橫向按鈕之間以 Ant Desig 的一種標準應該有 8px 的間距丽啡,一般我們會這樣:
<button nz-button style="margin-right: 8px">A</button>
<button nz-button>B</button>
而對于 ng-alain 來說,應該是這樣:
<button nz-button class="mr-sm">A</button>
<button nz-button>B</button>
假如你是在一個表單里出現時硬猫,你連 class 都可以省略补箍。
而 ng-alain 默認設置了 preserveWhitespaces: false 因此你會發(fā)現倆倆之間真的只有 8px。
Ant Design PRO
它是 React 發(fā)布不久的一個腳手架真的非常棒浦徊,沒幾天其 Star 就直接蓋了 ng-zorro-antd 有點心疼 ng-zorro-antd 哈。
當然 React 能做的天梧,Angular 自然也能做盔性,因此 ng-alain 也實現了一套 And Design Pro,原本我打算加一個完全一樣的 LayoutComponet呢岗。然冕香,我發(fā)現 pro 的風格與ng-alain真的不謀而合,將 pro 內容區(qū)域在 ng-alain 中形成一種很好的契合后豫,文章開頭的圖片就是來自 Pro 在 ng-alain 實現的分析頁悉尾。
Pro 頁面并不多,但涵蓋面很廣挫酿,ng-alain 除了用戶頁以外其他頁面都已經實現完畢构眯。
ng-zorro-antd-extra 番外篇
維護 ng-zorro-antd 的阿里團隊的確有點小慢,特別是在 Ant Design 馬上要 3.0早龟,而當前 ng-zorro-antd 還有很多值得優(yōu)化以及一些部分核心組件還未上線惫霸,而別說 3.0 的計劃。因此ng-zorro-antd-extra是我自己維護一個基于 Ant Design 3.0 版本下實現部分非常急需的組件葱弟。
在組件接口上我保持 ng-zorro-antd 的風格壹店,我會在未來提交 PR 至 ng-zorro-and。
千言萬語
我要表達的話還非常多芝加,只是為了一個記錄正式版文章中并不適合討論太多硅卢。或許你可以點開DEMO體驗一下。
其中一些我認為值得注意的話已經整合在項目的 _document 下面将塑。
未來
ng-alain 會作為我一個非常重要的開源項目持續(xù)更新脉顿,當然這一切的來源都是基于 ng-zorro-antd 的基礎,但若你一樣喜歡 Angular 以及 Ant Design 的理念抬旺,那為何不好好看一下 ng-alain弊予,多多少少你能帶走點什么。
未來我重點工作會在:
- 提供更豐富業(yè)務組件庫
- 跟進 angular开财、ng-zorro-antd汉柒、Ant Design Pro
- 工具上的支持,包括:vscode snippets责鳍、Angular Cli 中間件等
- 重構及優(yōu)化代碼