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 相关文章推荐
简单JS代码压缩器
Oct 12 Javascript
最简单的jQuery程序 入门者学习
Jul 09 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
js中常用的Math方法总结
Jan 12 Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
Jul 18 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 Javascript
Vue实现剪切板图片压缩功能
Feb 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无限分类源码分享(思路不错)
2011/10/13 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
深入理解Promise.all
2018/08/08 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python猴子补丁知识点总结
2020/01/05 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
linux面试相关问题
2013/04/28 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
超市收银员岗位职责
2015/04/07 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python