Angular2的核心概念详解

Angular 2 教程 Angular 2 是一个由 Google 开发的开源 JavaScript 框架,用于构建 Web 应用程序。它是 AngularJS(Angular 1)的完全重写,提供了更好的性能、可维护性和开发体验。Angular 2 使用 TypeScript 作为主要编程语言,支持组件化开发、双向数据绑定、依赖注入等特性。通过以上步骤,你已经了解了 Angular 2 的基本概念和开发流程,包括环境搭建、组件开发、数据绑定、模块、服务和路由等。 阅读详情

2-1 组件及组件树

8个核心概念

  • 组件 Components
  • 元数据 Metadata
  • 模板 Templates
  • 数据绑定 Data binding
  • 服务 Services
  • 指令 Directives
  • 依赖注入 Dependency Injection
  • 模块 Modules

组件

组件要素

HTML、CSS、JavaScript

全生命周期支持

  • Constructor 构造器初始化
  • OnChanges 第一次触发数据变化钩子
  • OnInit 组件初始化(建议将和业务相关的初始化放到这里)
  • OnChanges 运行期间触发数据变化钩子
  • OnDestroy 组件销毁前

组件示例

// 装饰器
@Component({
    selector: 'hello',
    template: '<p>{{greeting}}</p>'
})
// 组件类
export class HelloComponent {
    private greeting: string;
    constructor() {
        this.greeting = 'Hello, Angular 2!'
    }
}

元数据与装饰器

普通类 + 装饰器(@Component,包含元数据) => 组件

装饰器用于赋予一个类更丰富的信息(元数据),可以学习“reflect-metadata”库。

模板

  • 内联模板:template
  • 外联模板:templateUrl

数据绑定

数据绑定方式

  • 插值:{{interpolation}}
  • 属性绑定:[value]
<input [value]="myData" />
  • 事件绑定:(keyup)
<input (keyup)="handle($event)" />
  • 双向绑定:[(ngModel)]
<input [(ngModel)]="myData" />

组件树

组件渲染

2-2 指令

2-3 服务与依赖注入

服务是实现专一目的的逻辑单元, 如:日志服务。

示例:

export class LoggerService {
    constructor() {}

    debug(msg: string) {
        console.log(msg);
    }

    error(msg: string) {
        console.error(msg);
    }
}

依赖注入

依赖注入是组件引入外部构建(如:服务)的一种机制。

// 装饰器
@Component({
    selector: 'hello',
    template: '<p>{{greeting}}</p>',
    providers: [LoggerService]
})
// 组件类
export class HelloComponent {
    private greeting: string;
    constructor(logger: LoggerService) {
        this.greeting = 'Hello, Angular 2!';
        logger.debug('构造函数执行完毕');
    }
}

分层注入

注入 -> 重新注入

2-4 模块

模块由组件、指令、服务组成。

文件模块

  • 核心模块:@angular/core
  • 通用模块:@angular/common
  • 表单模块:@angular/forms
  • 网络模块:@angular/http

文件模块使用示例

import { http } from "@angular/http"

// @Component装饰器
import { Component } from "@angular/core"

// @Directive装饰器
import { Directive } from "@angular/core"

import { ElementRef, Renderer} from "@angular/core"

应用模块

@NgModule({
    declarations: [
        AppComponent,
        SomeDirective
    ],
    providers: [ LoggerService ],
    imports: [ OtherModule ],
    bootstrap: [ AppComponent ],
    exports: [ SomeDirective ]
})
export class AppModule {}
  • declarations: 包装组件或指令等
  • providers: 依赖注入
  • imports: 导入其他模块
  • bootstrap: 设置根组件
  • exports: 导出组件或指令等
Angular 2 JavaScript:全面解析与实战指南 Angular 2是Angular 1.x的升级版,旨在解决Angular 1.x在性能、扩展性、开发效率等方面的问题。TypeScript支持:Angular 2基于TypeScript语言开发,提高了代码的可读性和可维护性。组件化架构:Angular 2采用组件化架构,使得代码模块化、可重用。响应式编程:Angular 2采用响应式编程模式,使得界面与数据保持同步,提高开发效率。指令系统:Angular 2指令系统更加灵活,便于实现自定义UI效果。 阅读详情

相关推荐

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1593

Angular2 入门教程

一、 入门1、初识Angular2写一个Angular2的Hello World应用相当简单,分三步走: 引入Angular2预定义类型 import {Component,View,bootstrap} from "angular2/angular2";import是ES6的关键字,用来从模块中引入类型定义。在这里,我们从angular2模块库中引入了三个类型: Component类、View类和

franktaoge的博客 8581

UE5 GAS实战:从零构建一个MOBA英雄技能系统

本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。

weixin_29012765的博客 526

3、AngularJS2 架构

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33754913的博客 315

86 arduino 电机yl_(八)arduino入门:直流电机控制

一、本节介绍在本实验中,您将学习如何使用驱动芯片L293D和SunFounder Uno板控制小型直流(DC)电机的方向和速度。为了使初学者更容易,我们将让直流电机左右旋转,自动加速和减速。二、材料准备1 *小型直流电机1 * L293D1 * Arduino Uno板1 *面包板1 * USB数据线杜邦线三、原理讲解L293D这是一个非常实用的芯片,可以独立控制两台直流电机。在这个实验中,只有一...

weixin_29163857的博客 3566

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 226

angular2概述

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 简介 我主要从事后端开发,最近有幸参加了一个前端的项目,前后端分离,使用到的技术是angular2,因为之前工作有一些typescript的基础,所以就参加了,看似简单,其实也有很多要学习的,之前看过一本关于react的书籍,react的核心是组件化,学习了angular2发现他也...

至尊宝 2万+

AI应用架构师总结:智能问答系统用户意图识别的8种方法与实践!

意图识别是智能问答系统的大脑入口,其技术水平决定了系统能否准确捕捉用户的核心诉求。本文系统剖析了从基础规则到前沿PLM的8种核心意图识别方法透明简单,冷启动快,维护成本高。中等规模场景基线,依赖特征工程。利用词义和局部/序列信息,训练成本高。当前最优精度,需大量资源。添加意图灵活,冷启动友好,精度可能略逊。提升鲁棒性,系统变复杂。解决歧义和自然交互的关键(多轮)。增强专业领域理解和推理能力。成功的意图识别模块需要:精准的意图定义(Schema)是前提!

AI云原生与云计算技术学院 1631

Angular 2的核心概念

原文地址:http://victorsavkin.com/post/118372404541/the-core-concepts-of-angular-2 让我们来构建一个程序 组件(Component) Angular 2的应用是由一系列的组件构成的(ui element、route..),应用始终有一个包含其他组件的根组件,换句话每个angualr2应用都有一个组件树

mysql1234q的博客 766

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

k8291121的博客 1818

Qt5+Ros+GUI界面

在之前建立的工程的基础上添加一个gui界面。 在ros包中新建一个文件夹,名字叫gui 右击gui文件夹添加一个文件,选择Qt->Qt设计师界面类 选择MainWindow 选择下一步 最后在gui中生成三个文件 mainwindow.cpp、mainwindow.h、mainwindow.ui 但此时,这些新创建的文件和原本的ros工程还没建立任何关系,只是目录下多出了几个文件而已...

二毛的博客 8843

Angular2核心概念

原文地址: THE CORE CONCEPTS OF ANGULAR 2作者:Victor Savkin是Angular 2项目最多的提交者。 这篇博客中,我们将介绍Angular 2的三个核心概念:组件化,依赖注入,绑定。 最后更新:2016-01-04 免责声明 Angular 2仍然在开发之中,核心概念不会随之变化,但是相关API...

weixin_34380948的博客 189

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

1563

推荐项目:Angular 2 Examples - 理解并掌握Angular 2的核心概念

推荐项目:Angular 2 Examples - 理解并掌握Angular 2的核心概念 1、项目介绍 Angular 2 Examples 是一个由AngularClass团队提供的开源项目,它提供了一系列的Angular 2实例,帮助开发者深入理解并掌握这个强大的前端框架的不同模式和实践方法。通过这些实例,你可以逐步学习Angular 2的核心概念,并迅速提升你的开发技能。 2、项目技术分...

gitblog_00059的博客 347

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

2 Angular 2 的核心概念

一、组件(Components):   组件是构成 Angular 应用的基础和核心,它是一个模板的控制类,用于处理应用和逻辑页面的视图部分。组件知道如何渲染自己及配置依赖注入,并通过一些由属性和方法组成的 API 与视图进行交互,每个组件都能独立完成各自的功能。   我们可以通过一张图来理解一下组件:   组件要素:JavaScript、HTML、CSS   创建 Angula...

weixin_30781433的博客 117

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RxJS核心概念之Subjet在angular2+上的应用

Subject,在RxJS中是一类特殊的Observable(可观察对象),它可像多个Observer(观察者)推送值。         每一个Subject也可以作为Observer(观察者) Subject同样也是一个由next(v),error(e),和 complete()这些方法组成的对象。调用next(theValue)方法后,Subject会向所有已经在其上注册的Observer

yaomengzhi的博客 944

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Angular2学习-RxJS核心概念之Subject

Subject什么是Subject?在RxJS中,Subject是一类特殊的Observable,它可以向多个Observer多路推送数值。普通的Observable并不具备多路推送的能力(每一个Observer都有自己独立的执行环境),而Subject可以共享一个执行环境。Subject是一种可以多路推送的可观察对象。与EventEmitter类似,Subject维护着自己的Observer。每一

song_199527的博客 2920

半小时入门Angular 2

本文首发于由电子工业出版社出版《揭秘Angular 2》一书,基于第5章概览改写。 作者简介:广发证券互联网金融技术团队,是Angular早期坚定的践行者。作为全新一代的证券业 IT 研发组织,团队致力于用更新更好的技术打造行业方案、支持业务创新。 责编:陈秋歌,寻求报道或者投稿请发邮件至chenqg#youkuaiyun.com,或加微信:Rachel_qg。 了解更多前沿技术资讯,...

小秋博客 7907

【Angular2】基础入门

【前言】 由于最近公司使用 Angular2 来做前端,对于小白的我来说必须来学习一下 Angular2 了。下面由小编来分享一下学习成果,为大家介绍一下Angular2。 一、历史发展: (一)起源: 2009年,Misko hevery 和 Adam Abrons 在业余时间创造了GetAngular。那么这个GetAngular到底有多大的作用呢?这里有个...

心似烟火 2888

七周七种前端框架三: Angular2 印象

巨大变化在 Angular1 中最重要的两个概念: directive 拓展DOM功能,封装DOM操作,并且是可复用的组件 controller 创建新的 $scope 作用域,封装和DOM无关的业务逻辑 Angular2 是一次彻底的重写,完全删掉了 Controller 和 $scope,增加了一个重要的功能叫 @Component,Component 是Angular2的核心,相当于Angul

言川的博客 1万+

Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎。不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学习Angular 2的知识概念的绝佳途径。 在文中,我们将会接触到很多Angular 2的重要概念,并附扩展阅读资料和自查小测试,供大家评估自己对Angular的了解程度。  

Frankywls的博客 783

【Angular1/2】详细介绍及基础,欢迎交流!

【Angular2】基础入门   【前言】        由于最近公司使用 Angular2 来做前端,对于小白的我来说必须来学习一下 Angular2 了。下面由小编来分享一下学习成果,为大家介绍一下Angular2。 一、历史发展: (一)起源:        2009年,Misko hevery 和 Adam Abrons 在业余时间创造了GetAngular。那么这个GetAn...

心有猛虎,是只大喵的博客 475
上一篇: Angular学习(三)【指令生命周期,路由跳转】
下一篇: AspectCore入门
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值