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 相关文章推荐
用JavaScript实现UrlEncode和UrlDecode的脚本代码
Jul 23 Javascript
document.onreadystatechange事件的用法分析
Oct 17 Javascript
JQuery 技巧和窍门整理(8个)
Apr 22 Javascript
基于javascript 闭包基础分享
Jul 10 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
初学node.js中实现删除用户路由
May 27 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 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+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
Django自定义认证方式用法示例
2017/06/23 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
Django中Middleware中的函数详解
2019/07/18 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Keras自定义IOU方式
2020/06/10 Python
Python gevent协程切换实现详解
2020/09/14 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
什么是属性访问器
2015/10/26 面试题
美发活动策划书
2014/01/14 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
母婴店促销方案
2014/03/05 职场文书
面试必备的求职信
2014/05/25 职场文书
观看信仰心得体会
2014/09/04 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
夏洛特的网观后感
2015/06/15 职场文书