ng-zorro-antd 入门初体验


Posted in Javascript onDecember 03, 2018

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 在命名方面还是很讲究的,而且有几个特点:

  • 所有组件、指令都是以 nz- 开头(例:ng-button)。
  • 所有组件、指令属性都是 nz 开头,紧跟大驼峰式命名法(例:[nzSize])。

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 入门初体验

四、结论

ng-zorro-antd 对Angular应该会有一个非常大的推动。

当前组件与React组件还有几个比较重要的组件未完成,比如:autocomplate、Cascader 一些很常用的组件。希望有更多大牛加入贡献行列,让 ng-zorro-antd 社区环境更丰富。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS 下拉多选框lovcombo
May 19 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 Javascript
javascript实现原生ajax的几种方法介绍
Sep 21 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
jQuery实现带水平滑杆的焦点图动画插件
Mar 08 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 Javascript
Vue实现简单计算器案例
Feb 25 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
JS实现百度搜索框
Feb 25 Javascript
TypeScript 内置高级类型编程示例
Sep 23 Javascript
如何使用 vue + d3 画一棵树
Dec 03 #Javascript
Vue.js中 v-model 指令的修饰符详解
Dec 03 #Javascript
浅谈ng-zorro使用心得
Dec 03 #Javascript
JS跨域请求的问题解析
Dec 03 #Javascript
VueJS 组件参数名命名与组件属性转化问题
Dec 03 #Javascript
Vue.Draggable拖拽功能的配置使用方法
Jul 29 #Javascript
小程序实现授权登陆的解决方案
Dec 02 #Javascript
You might like
PHP 变量类型的强制转换
2009/10/23 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
3种python调用其他脚本的方法
2020/01/06 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
应届生护士求职信
2013/11/01 职场文书
4s店机修工岗位职责
2013/12/20 职场文书
2014年党务公开方案
2014/05/08 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
新郎结婚感言
2015/07/31 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
Nginx实现负载均衡的项目实践
2022/03/18 Servers