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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
jquery幻灯片插件bxslider样式改进实例
Oct 15 Javascript
js操作滚动条事件实例
Jan 29 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
Jul 19 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
解决layui 表单元素radio不显示渲染的问题
Sep 04 Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
如何使用 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和ACCESS写聊天室(六)
2006/10/09 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
公司授权委托书范本
2014/04/03 职场文书
自我检讨报告
2015/01/28 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
运动会新闻稿
2015/07/17 职场文书
售房协议书范本
2015/08/11 职场文书
2016天猫双十一广告语
2016/01/28 职场文书