angular4-开发指南

angular4-开发指南

var elems = document.querySelectorAll('.original-english');

[].forEach.call(elems, function(el) {
    el.classList.remove("hidden");
});

中英文对比学习。中文网站翻译的不是很好,有些语义不是很明确,需要参考英文学习。

  • 使用angular 扩展语法编写HTML模板
  • 组件类管理模板
  • 服务添加应用逻辑
  • 模块打包发布组件和服务
  • 引导根模块启动应用
  • Angular 在浏览器中接管、展现应用的内容,并根据我们提供的操作指令响应用户交互。

架构图:


从以上架构图可以看出主要由八大部分:

  • 模块-module
  • 组件-component
  • 模板-template
  • 元数据-metadata
  • 数据绑定-data binding
    • 单向绑定
    • 双向绑定
  • 指令-directive
  • 服务-service
  • 依赖注入-dependency injection

模块

  1. angular应用是模块化的,有自己的模块系统-NgModules,区别于JavaScript 模块。
  2. 至少一个根模块,appModule
  3. 每个模块是一个内聚代码块
  4. angular模块是带有 @NgModule 装饰器的类,接收一个用来描述模块属性的元数据对象。其中最重要的属性是:
    • declarations:声明本模块中拥有的视图类.三大视图类:component,directive,pipe,在使用ng-cli命令创建时,会自动更新appModule
    • imports - 本模块声明的组件模板需要的类所在的其它模块
    • providers - 服务的创建者,并加入到全局服务列表中,可用于应用任何部分。
    • exports - declarations 的子集,可用于其它模块的组件模板。

5、我们通过引导根模块来启动应用

组件

组件控制视图,组件是个特殊的指令
组件通过一些由属性和方法组成的 API 与视图交互。

Angular creates, updates, and destroys components as the user moves through the application.

Your app can take action at each moment in this lifecycle through optional lifecycle hooks。

@angular/core/src/metadata/directives.d.ts

模板

通过模板定义组件视图,告诉angular如何渲染组件。

元数据

Metadata tells Angular how to process a class.

In TypeScript, you attach metadata by using a decorator.

component metadata:


The template, metadata, and component together describe a view.

Apply other metadata decorators in a similar fashion to guide Angular behavior. @Injectable, @Input, and @Output are a few of the more popular decorators.

数据绑定

As the diagram shows, there are four forms of data binding syntax. Each form has a direction — to the DOM, from the DOM, or in both directions.

Two-way data binding is an important fourth form that combines property and event binding in a single notation, using the ngModel directive.

数据绑定在模板与对应组件的交互中扮演了重要的角色。
数据绑定在父组件与子组件的通讯中也同样重要。


指令

  • A component is a directive-with-a-template --组件是一种特殊指令
  • structural directive-结构型指令通过在 DOM 中添加、移除和替换元素来修改布局。
    • *ngIf
    • *ngFor
    • *ngSwitch
  • attribute directive --属性型 指令修改一个现有元素的外观或行为
    • ngModule
    • ngClass
    • ngStyle

服务

  • 设计良好的组件为数据绑定提供属性和方法,把其它琐事都委托给服务。

依赖注入

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

推荐阅读更多精彩内容

  • Angular 2架构总览 - 简书//www.greatytc.com/p/aeb11061b82c A...
    葡萄喃喃呓语阅读 1,483评论 2 13
  • 版本:Angular 5.0.0-alpha AngularDart(本文档中我们通常简称 Angular ) 是...
    soojade阅读 825评论 0 4
  • Angular 2是一个帮助我们使用HTML和JavaScript构建客户端应用的框架。这个框架包含几个互相协作的...
    JasonQiao阅读 7,097评论 1 48
  • ふなびん(船便)こうくうびん(航空便)ふな(船)ふながいしゃ(船会社) しょるい(書類)しゅるい(種類) えきまえ...
    lhhhq阅读 844评论 0 0
  • 海边的旧码头,摇摇欲坠的破木头向海湾伸出了手。海浪带着沙,来了又去,去了又来。有时候还夹着不知名的小鱼,那些小鱼被...
    薄稚阅读 678评论 4 4