Angular版本的 Ant Design 總算發布了,其名曰:ng-zorro-antd。
這人要是越期待,心就越著急。早在8月上旬我就開發好了 ng-zorro-vscode;一個在vscode下的snippets。因此,雖然那時未能探到源代碼,但從官網的SDK中,就已經對 ng-zorro-antd 有一定全面性了解。
下面將基于我的理解,從宏觀角度解析一下,或許能幫助你更好的去使用 ng-zorro-antd。
再次說一下,ng-zorro-antd 真的是非常有良心的作品。
一、安裝
ng-zorro-antd 本身只是一個antd組件Angular實現的合集,因此,如果你希望基于 ng-zorro-antd 開發依然需要先安裝 Angular Cli。
1、創建項目
# 安裝全局,這樣允許直接在CMD命令行中使用 `ng` 命令。npm install -g @angular/cli@latest# 創建項目ng new demo# 安裝包npm install --save ng-zorro-antd
2、導入模塊
我建議在 SharedModuel 中導入模塊。
@NgModule({ imports: [ NgZorroAntdModule.forRoot() ], exports: [ NgZorroAntdModule ]});3、根組件
務必要引入 nz-root 根組件;有且只需引用一次。部分組件需要依賴 nz-root 所以最佳位置放在根組件內,比如 ./src/app.component.html:
<nz-root> <router-outlet></router-outlet></nz-root>
至此,你可以放心在任何頁面中使用 ng-zorro-antd 組件。
二、最佳實踐
已經實現了絕大多數的 React 版本的組件;雖然今天剛發布,但是已經在阿里內部已經在使用了。
1、命名
ng-zorro-antd 在命名方面還是很講究的,而且有幾個特點:
2、柵格
antd 是以 24 等分的柵格來劃分區域,這一點可能跟經常使用 bootstrap 的人會有一點不習慣。
<div nz-row> <div nz-col [nzSpan]="12"></div> <div nz-col [nzSpan]="12"></div></div>
一個 nz-row 內的 nz-col 總格數([nzSpan] 總和)為24表示一行,如果超過會自動換行。
當然,也支持類似 bootstrap 的響應式設計,內置了幾種不同的響應。
| Size | ng-zorro-antd | bootstrap |
|---|---|---|
| auto | [nzXs] | .col-xs- |
| 540px | [nzSm] | .col-sm- |
| 720px | [nzMd] | .col-md- |
| 960px | [nzLg] | .col-lg- |
| 1140px | [nzXl] | .col-xl- |
如果你喜歡 flex 布局,需要手動開啟:
<div nz-row [nzType]="'flex'" [nzJustify]="'center'" [nzAlign]="'top'"> <div nz-col [nzSpan]="12"></div> <div nz-col [nzSpan]="12"></div></div>
3、樣式
無須再額外的引用外部任何 antd 的樣式,因為 ng-zorro-antd 是以 encapsulation: ViewEncapsulation.None 不隔離的方式封裝樣式,可以直接在任何地方運用到這些樣式。
比如:
<div class="ant-row"> <div class="ant-col-12">col-12</div> <div class="ant-col-12">col-12</div></div>
4、時間處理
Angular 默認的時間處理簡直就是一個痛,而 ng-zorro-antd 依賴了 moment,因此在處理時間格式上,正確的姿勢應該是:
_value | nzDate: 'YYYY-MM-DD ddd'Outpu: 2017-08-15 周二
5、貨幣
也是Angular痛點,ng-zorro-antd 并無提供相應Pipe,應該后續會有!
三、工欲善其事,必先利其器
如果你在 vscode 中編寫Angular,那么安裝 ng-zorro-vscode 代碼片斷,對開發效率很有幫助。

四、結論
ng-zorro-antd 對Angular應該會有一個非常大的推動。
當前組件與React組件還有幾個比較重要的組件未完成,比如:autocomplate、Cascader 一些很常用的組件。希望有更多大牛加入貢獻行列,讓 ng-zorro-antd 社區環境更豐富。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答