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效果。 阅读详情

相关推荐

告别手绘!用Aseprite+Unity Tilemap,从AI生成到2D游戏地图的保姆级搭建流程

本文详细介绍了如何利用Aseprite和Unity Tilemap从AI生成素材到搭建2D游戏地图的完整流程。涵盖AI生成素材的预处理、图层管理、动画制作,以及Unity中的Tilemap系统配置和性能优化技巧,帮助开发者高效创建像素风游戏地图。

weixin_29015483的博客 580

Angular2 入门教程

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

franktaoge的博客 8581

别自己写CDC了!聊聊Xilinx AXI4-Stream Clock Converter IP里的寄存器管道模式到底有多省资源

本文探讨了Xilinx AXI4-Stream Clock Converter IP核的寄存器管道模式在FPGA设计中的高效资源利用。通过对比手工CDC实现,详细解析了IP核的精简化同步架构和时序收敛优势,并提供了实战案例和优化策略,帮助工程师快速实现时钟域转换,显著提升设计效率和性能。

weixin_33738555的博客 441

3、AngularJS2 架构

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

weixin_33754913的博客 315

一篇文章带你认识 SpringBoot

文章目录一、原有 Spring 优缺点分析二、SpringBoot 的概述 一、原有 Spring 优缺点分析 (1)Spring 的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了EJB的功能。

南淮北安的博客 764

聊聊蓝牙配对技术-CTKD OVER BR/EDR

摘要:本文探讨了蓝牙设备通过跨传输密钥派生(CTKD)机制实现双模连接的技术细节。研究发现,手机在连接双模耳机时优先通过BR/EDR配对,再利用CTKD派生BLE连接所需的密钥。关键条件包括:设备地址一致性、启用安全连接(Secure Connection)及禁用justworks配对方式。文章详细剖析了从BR/EDR链路密钥派生BLE长期密钥(LTK)的算法流程,重点解析了H6/H7加密函数的作用机制与安全差异。研究还通过HCI日志验证了密钥交换和加密建立的完整过程,指出蓝牙5.1版本对CTKD安全性的强

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2691

angular2概述

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

至尊宝 2万+

ubuntu20.04中配置Pyrep和CoppeliaSim

在Ubuntu20.04中配置 Pyrep ,实现应用Python语言的机器人在 Vrep(CoppeliaSim)中的虚拟仿真。

加斯顿工程师的博客 3374

Angular 2的核心概念

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

mysql1234q的博客 766

华为交换机系统软件升级和安全漏洞修复教程

在华为交换机国网可以查询到华为交换机官方电话:400-822-9999,通过下命令查询出需要升级的交换机软件版本和补丁版本号发给华为,获取新的升级系统软件和补丁以及升级教程。下面是我升级华为交换机总结的教程,作为参考。...

星如雨落 2964

8.9华为OD机试真题 新系统 - 查找最佳充电策略 (Java/Py/C/C++/Js/Go)

8.9华为OD机试真题 新系统 - 查找最佳充电策略 (Java/Py/C/C++/Js/Go)

算法大师! 1160

Angular2核心概念

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

weixin_34380948的博客 189

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1667

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

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

gitblog_00059的博客 347

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2 Angular 2 的核心概念

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

weixin_30781433的博客 117

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

yaomengzhi的博客 944

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、付费专栏及课程。

余额充值