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 相关文章推荐
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
JavaScript函数详解
Nov 17 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
Vue常用指令详解分析
Aug 19 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 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面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python对字典进行排序实例
2014/09/25 Python
Python中的choice()方法使用详解
2015/05/15 Python
python用户管理系统的实例讲解
2017/12/23 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
历史专业毕业生的自我鉴定
2013/11/15 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
公司承诺书怎么写
2014/05/24 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
毕业论文致谢信
2015/05/14 职场文书
草房子读书笔记
2015/06/29 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技