学习Angular2系列(2)----认识

一、核心模块功能概览

完整的Angular2应用主要由6部分组成,分别是组件、模板、指令、服务、依赖注入、路由。

1.1 组件

组件包括:模板和组件类。
模板:与用户直接交互
组件类:维护组件的数据模型和功能逻辑。

1.2 路由

功能:控制组件的创建和销毁,从而驱使应用界面跳转切换。

1.3 指令

指令与模板相互关联,最重要的作用是增强模板特性,间接扩展了模板的语法。

1.4 服务

封装了若干功能逻辑的单元,可以通过依赖注入机制引入到组件内部,作为组件功能的扩展。

二、组件

2.1 组件的组成

1)组件装饰器,@Component修饰的组件类成为组件
2)组件元数据:selector、template
3)模板,每个组件关联一个模板,这个模板最终渲染到页面上。页面上的元素就是此组件实例的宿主元素。
4)组件类,组件实际也是一个普通的类,组件的逻辑都在组件类里定义并实现。

import {Component} from "@angular/core";

@Component({
  selector: "contact-app",
  templateUrl: "app/app.component.html",
  styleUrls: ["app/app.component.css"]
})

export class AppComponent {
  constructor() {}
}

2.2 组件装饰器

@Component是TypeScript语法。

2.3 组件元数据

1)selector,用于定义组件在HTML代码中匹配的标签,它将成为组件的命名标记。
2)template,为组件指定一个内敛模板。templateUrl,为组件指定一个外部模板。
3)stsles/templateUrl,模板的样式。

2.4 组件模板

组件内容最终渲染到模板的DOM元素上,DOM元素也成宿主元素。组件与宿主元素可以进行交互,交互的形式包括:显示数据双向数据绑定监听事件

2.4.1 显示数据

可以使用插值语法 {{}} 来显示组件的数据。数据由组件类的成员变量替代。

2.4.2 双向数据绑定

 <input [(ngModel)]="contact.birthday" >

[]实现了数据流从组件类到模板。
()实现了数据流从模板到组件

2.4.3 监听绑定

<a class = "edit" (click)="editContact()">编辑</a>

发生点击事件,就会调用组件的editContact()方法。

2.4.3 输入和输出属性

=左边:数据绑定目标

=右边:数据绑定的源

<list-item [contact]="contact" (routerNavigate)="routerNavigate($event)"></list-item>
  • contact和routerNavigate都是数据绑定的目标。
  • contact是属性绑定的目标,数据通过模板表达式流向目标属性contact。
  • routerNavigate是事件绑定的目标。

Angular提供了输入(@Input)和输出(@Output)语法来除了组件数据的流入和流出。

export class ListItemComponent implements OnInit {
  @Input() contact:any = {};
  @Output() routerNavigate = new EventEmitter<number>();

  constructor() {}
  ngOnInit() {
  }
  goDetail(num: number) {
    this.routerNavigate.emit(num);
  }
}

三、指令

与模板关系密切,可以与DOM进行灵活交互,可以改变样式或布局。指令分为2种:结构指令和属性指令。

四、模块

4.1 模块概览

每个Angular应用至少有一个模块,作为应用的入口,这个模块称为根模块(Root Module)。通过引导运行根模块来启动Angular应用。除了跟模块,还有封装完整功能的特性模块(Feature Module)、封装一些公共构件的共享模块(Shared Module)、应用级别核心构件的核心模块(Core Module)。

4.2 引导启动

Angular通过引导运行根模块来启动应用。引导方式有两种,动态引导和静态引导。
Angular在运行之前,都需要经过编译器对模块组件等进行编译,编译之后开始启动应用渲染界面。动态引导和静态引导的区别就在编译的时机不同。

  • 动态引导,将所有代码加载到浏览器,在浏览器中进行编译。
  • 静态引导,编译过程前置到开发时的工程打包阶段,加载浏览器是编译之后的代码。
//动态启动
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './app/app.module';

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));

尾部:
至此,一个简单的Angular2的工程就可以进行渲染了。将会理解组件、模块的使用方式。接下来是路由的学习。

<全文结束>

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

推荐阅读更多精彩内容

  • Angular 2架构总览 - 简书//www.greatytc.com/p/aeb11061b82c A...
    葡萄喃喃呓语阅读 1,481评论 2 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,629评论 18 139
  • 其实已经有好些天没有睡好,但害怕家人担心,没有和他们提起。老公有所发觉,说我最近醒得有点早,我敷衍他说冬天容易尿急...
    路语旁集阅读 291评论 0 0
  • 痴痴迷恋着的你,的我,其实都不是真实的。所有的爱意,都止于文字。 所有的决别,太虚无
    时光打捞者阅读 525评论 0 0
  • 神给我很大的恩典,让我生命中有海鸥和我一起承受生命之恩的,陪伴我一生的爱人,我一生最对的决定就是娶了她为妻,她给我...
    恩宠爸爸阅读 246评论 0 0