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 相关文章推荐
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
小程序实现列表展开收起效果
Jul 29 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
PHP new static 和 new self详解
2017/02/19 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
vue项目实战总结篇
2018/02/11 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Python Selenium截图功能实现代码
2020/04/26 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
恶意软件的定义
2014/11/12 面试题
土木建筑学生自我评价
2014/01/14 职场文书
青年文明号服务承诺
2014/03/31 职场文书
经典毕业生求职信
2014/07/12 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
优秀大学生申请书
2019/06/24 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript
Python图像处理库PIL详细使用说明
2022/04/06 Python