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 作用域与作用域链详解
Apr 07 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
Oct 28 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 Javascript
javascript iframe跨域详解
Oct 26 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
jquery+php后台实现省市区联动功能示例
May 23 jQuery
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
如何编写一个 Webpack Loader的实现
Oct 18 Javascript
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vue的项目如何打包上线
Apr 13 Vue.js
如何使用 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 在线打包_支持子目录
2008/06/28 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
DOM事件探秘篇
2017/02/15 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
Python如何实现强制数据类型转换
2019/11/22 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
详解Python 循环嵌套
2020/07/09 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
表达自我的市场:Society6
2018/08/01 全球购物
事业单位岗位说明书
2015/10/08 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python