angular8教程(2)-引入ng-zorro

Ant design是阿里的一套前端UI设计规范,目前针对三大前端框架都有对应的UI库,我个人觉得这一套库组件比较齐全,官方文档也比较规范,用起来挺方便的,企业用来做一些后台管理系统也很适合。这里我就讲述一下如何用这套规范的ng-zorro来做angular项目的开发。

首页引入ng-zorro的方法有两个:

  1. 用自带脚手架直接构建项目
    ng-zorro有自带的脚手架可以帮助你快速构建一个项目框架,现在命令行窗口cd到我们上一篇教程创建的angular-schoolmanager-cli项目目录下,运行ng add ng-zorro-antd,中途会需要你确认四个选择


    添加ng-zorro时的选择

    (1)是否添加图标库,建议选是
    (2)是否设置自定义主题文件,这个可以随意
    (3)本地化代码,我们选zh_CN,代表中文
    (4)选择模板,这里我们选了带侧边栏菜单的
    创建完成后,可以启动项目,运行成功可以看到一个带侧边栏模板的界面。


    带侧边栏模板的界面
  2. 也可以用手动配置的方法引入ng-zorro库,具体如何手动引入可以参考官方文档的快速上手-自行构建部分
    另外由于angular框架模块化的特性,ng-zorro也支持你单独引入某个模块比如button模块,具体如何引入也可以查看官方文档。

接着我们就继续看上面的带侧边栏模板的项目是如何构建出来的。我们先看一下现在的项目结构和上一篇刚创建完的项目有什么不同。

  1. 首先看package.json,可以看到dependencies下面多了一个"ng-zorro-antd": "^8.5.2"的库。
  2. 不难发现的是src目录下面多了一个theme.less的文件,这是上面我们创建时第二个选择“是否设置自定义主题文件”时选是的时候创建的,这个相当于ng-zorro封装的样式文件,我们可以通过这个文件修改默认样式,自定义主题样式。顺便我们也可以发现angular.json这个配置文件也发生了改变


    ng-zorro样式配置

    通过这里引入了ng-zorro的样式。

  3. 同样不难发现的是src/app目录下面多了一个icons-provider.module.ts的文件,从文件名称我们可以猜到,这是一个提供icons的模块,我们看一下这个文件内容
import { NgModule } from '@angular/core';
import { NZ_ICONS } from 'ng-zorro-antd';

import {
  MenuFoldOutline,
  MenuUnfoldOutline,
  FormOutline,
  DashboardOutline
} from '@ant-design/icons-angular/icons';

const icons = [MenuFoldOutline, MenuUnfoldOutline, DashboardOutline, FormOutline];

@NgModule({
  providers: [
    { provide: NZ_ICONS, useValue: icons }
  ]
})
export class IconsProviderModule {
}

这里我们可以看出,这个模块引入了四个icon组件,正好对应了界面上四个图标。上一篇教程中我们就提到过,app.module.ts中会引入要用到的模块,所以我们去看这个文件。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { IconsProviderModule } from './icons-provider.module';
import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { registerLocaleData } from '@angular/common';
import zh from '@angular/common/locales/zh';

registerLocaleData(zh);

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    IconsProviderModule,
    NgZorroAntdModule,
    FormsModule,
    HttpClientModule,
    BrowserAnimationsModule
  ],
  providers: [{ provide: NZ_I18N, useValue: zh_CN }],
  bootstrap: [AppComponent]
})
export class AppModule { }

果然,IconsProviderModule在这里被引入了,实际上,这是静态加载icon的方法。但是我们这边需要说明的是,根据官方文档icon图标这一节说明的,前面我们已经在angular.json中添加了动态加载icon的配置,即

"src/assets",
              {
                "glob": "**/*",
                "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/",
                "output": "/assets/"
              }

所以使用IconsProviderModule的静态加载icon的方式两者只取其一即可,这里重复了。
同时还要注意的是跟上一篇教程创建完项目时相比,这里还多引用了几个模块,除了ng-zorro的模块,还多了表单模块、http请求模块和动画模块,这三个模块是项目开发时必然要用到的模块,所以脚手架自动为我们引入了。另外还多了一个provider,是为了支持国际化的。
实际上,到这里为止,引入ng-zorro的工作已经完成了,后面就该开始正式的编码了,所以本教程先到此为止,下一篇我再结合angular中路由的概念来剖析其他增加的代码。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容

  • 今天跟一个海外的小伙伴聊天,他说人到中年,唯一感到遗憾的是没有好好的陪伴在父母的身边。 我说:为什么啊?此话咋讲呢...
    哈博士阅读 722评论 2 2
  • 我的牙从外观上看长得还可以,但是呢,在我的成长过程中里面两颗大牙却经历了一段心酸史。小时候家里人忙,牙疼就没当...
    一粒麦子_7311阅读 252评论 0 0
  • 等以后.趁现在 等以后我有能力了,我要给妈妈买她最爱吃的茉莉糕,给爸爸带最好的碧螺春。 等以后我变得更好了,我要大...
    贾小假阅读 495评论 0 1
  • 1、每天15分钟,每周四次,每次写下最难过的经历,一个月16次,焦虑水平会降低到平均水平以下。 皮...
    laoqin阅读 116评论 0 0