Angular 4.0의 아키텍처 사용법에 대한 자세한 설명
이번에는 Angular 4.0 아키텍처 사용에 대한 자세한 설명을 가져왔습니다. Angular 4.0 아키텍처 사용 시 주의 사항은 무엇입니까?
머리말
얼마 전 Google은 인기 있는 Angular JavaScript 프레임워크 버전 4.0을 출시했습니다. 이 프레임워크는 생성된 코드의 크기를 줄이고 프레임워크에 대한 단순화된 릴리스 계획을 유지하는 데 전념하고 있습니다.
이렇게 좀 더 개념적인 글을 쓴 건 오랜만인데, 지식 구조가 형성되지 않으면 학습 효율이 크게 떨어질 것 같은 느낌이 듭니다. 여기에서는 제가 이해한 지식을 여러분과 공유하겠습니다. 내용 중 일부는 공식 문서에서 인용되었습니다. 아래 주제를 입력하세요
Angular 아키텍처 개요
이 아키텍처 다이어그램은 Angular 애플리케이션의 8가지 주요 구성 요소를 보여줍니다.
다음에는 사진과 함께 순서대로 설명하겠습니다.
1. 모듈
Angular 또는 ionic으로 생성된 새 프로젝트에는 루트 모듈이 있으며 기본 이름은 AppModule입니다. Modular를 사용하여 애플리케이션을 만드는 경우 다음을 포함하세요. AppModule에는 각각 @NgModule 데코레이터 클래스가 있습니다(Java와 매우 유사하지만). 에 주석을 달지만 공식 이름은 decorator입니다). 새 페이지가 지연 로딩을 사용하지 않는 경우 사용하기 전에 @NgModule에서 선언해야 합니다.
@NgModule
//app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; @NgModule({ imports: [ BrowserModule ], providers: [ Logger ], declarations: [ AppComponent ], exports: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }
에 있는 내용을 간략하게 소개하는 예시입니다. 이 모듈에 선언된 구성 요소 템플릿에 필요한 클래스가 있는 다른 모듈을 가져옵니다.
- providers 서비스 생성자이며 애플리케이션의 모든 부분에서 사용할 수 있는 글로벌 서비스 목록에 추가됩니다.
- declarations는 이 모듈이 소유한 뷰 클래스를 선언합니다. Angular에는 구성 요소, 지시문 및 파이프라는 세 가지 뷰 클래스가 있습니다.
- 다른 모듈의 구성 요소 템플릿에서 사용할 수 있는 내보내기 선언의 하위 집합입니다.
- bootstrap은 다른 모든 보기의 호스트인 애플리케이션의 기본 보기(루트 구성 요소라고 함)를 지정합니다. 루트 모듈만 부트스트랩 속성을 설정할 수 있습니다.
그림의 의미: 그림의 왼쪽 상단을 보면 모듈은 모듈 속성을 설명하는 메타데이터 개체를 수신하는 데 사용됩니다.
2. 구성 요소, 템플릿, 메타데이터
이번에는 이 세 가지 사항에 대해 함께 이야기해보겠습니다. 먼저 이 코드를 살펴보겠습니다
//hero-list.component.ts @Component({ selector: 'hero-list', templateUrl: './hero-list.component.html', providers: [ HeroService ] }) export class HeroListComponent implements OnInit { /* . . . */ }
구성요소
컴포넌트는 구성 객체를 받아들이는 데코레이터이며 Angular는 이 정보를 기반으로 컴포넌트와 뷰를 생성하고 표시합니다.
selector: Angular에게 상위 HTML에서
태그를 찾아 구성요소를 생성하고 삽입하도록 지시하는 CSS 선택기입니다. - templateUrl: 컴포넌트 HTML 템플릿의 모듈 상대 주소입니다. 템플릿을 사용하여 작성하는 경우 "`" 기호를 사용하여 HTML 코드를 직접 작성합니다.
- providers: 구성 요소에 필요한 서비스의 종속성 주입.
템플릿
템플릿은 HTML 코드 조각으로, templateUrl을 사용하여 외부에서 도입하거나 template``를 사용하여 직접 작성할 수 있습니다.
메타데이터
메타데이터 데코레이터는 비슷한 방식으로 Angular의 동작을 안내합니다. 예를 들어 @Input, @Output, @Injectable 등은 가장 일반적으로 사용되는 데코레이터 중 일부이므로 여기서는 사용법을 확장하지 않습니다.
다이어그램의 의미: 다이어그램 중앙을 보면 템플릿, 메타데이터 및 구성 요소가 함께 뷰를 설명합니다.
3.데이터 바인딩
여기에는 총 4개의 데이터 바인딩이 표시됩니다. 샘플 코드를 살펴보세요.
//插值表达式 显示组件的hero.name属性的值 <li>{{hero.name}}</li> //属性绑定 把父组件selectedHero的值传到子组件的hero属性中 <hero-detail [hero]="selectedHero"></hero-detail> //事件绑定 用户点击英雄的名字时调用组件的selectHero方法 <li (click)="selectHero(hero)"></li> //双向绑定 数据属性值通过属性绑定从组件流到输入框。用户的修改通过事件绑定流回组件,把属性值设置为最新的值 <input [(ngModel)]="hero.name">
可能大家对各种括号看的眼花了,总结一下:
双花括号是单向绑定,传递的是值。方向是 组件 -> 模板。
- 方括号是单向绑定,传递的是属性。方向是 父组件 -> 子组件。
- 圆括号是事件绑定,处理点击等活动(action)。
- 方括号套圆括号是双向绑定,方向是 组件 <-> 模板。
在图中的意义:看图中间那一块,数据绑定给模板和组件提供数据交互的方式。
4.指令 (directive)
严格来说组件就是一个指令,但是组件非常独特,并在 Angular 中位于中心地位,所以在架构概览中,我们把组件从指令中独立了出来。
我们这里提到的指令有两种类型:
结构型 structural 指令和属性 attribute 型指令。
放一下原文证明一下组件确实算是一个指令:
While a component is technically a directive, components are so distinctive and central to Angular applications that this architectural overview separates components from directives.
Two other kinds of directives exist: structural and attribute directives.
结构型指令是 ngFor、ngIf 这种的,通过在 DOM 中添加、移除和替换元素来修改布局。
属性型指令是 ngModel 这种的,用来修改一个现有元素的外观或行为。
Angular 还有少量指令,它们或者修改结构布局(例如 ngSwitch ), 或者修改 DOM 元素和组件的各个方面(例如 ngStyle 和 ngClass)。之后我会单独写一篇讲他们用法的文章。
在图中的意义:看图右上角那一块,组件是一个带模板的指令,只是扩展了一些面向模板的特性。
5.服务 (service)
官方文档的概念:
服务是一个广义范畴,包括:值、函数,或应用所需的特性。服务没有什么特别属于 Angular 的特性。Angular 对于服务也没有什么定义,它甚至都没有定义服务的基类,也没有地方注册一个服务。
这就像你在 iOS 或者 Android 里单独建了一个类叫 httpService ,封装了网络请求服务一样,不是具体的什么东西,就是一个概念了解下就行。
在图中的意义:看图左下角角那一块,服务是用来封装可重用的业务逻辑。
6.依赖注入 (dependency injection)
依赖注入是提供类的新实例的一种方式,还负责处理类所需的全部依赖。大多数依赖都是服务。 Angular 使用依赖注入来提供新组件以及组件所需的服务。
比如我们要给某组件导入 HomeService 这个服务,看这段代码:
constructor(private service: HeroService) { ... }
这个constructor就是构造函数,依赖注入在 constructor 中进行。你也许会觉得前面写上 private、public 之类的很怪,这是 TypeScript 语法比较特殊,习惯就好。
当 Angular 创建组件时,会首先为组件所需的服务请求一个注入器 injector。我们必须先用注入器 injector 为 HeroService 注册一个提供商 provider。
看一下下面的代码,意思就是我们必须在 providers 写上才能用
@Component({ selector: 'hero-list', templateUrl: './hero-list.component.html', providers: [ HeroService ] })
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
위 내용은 Angular 4.0의 아키텍처 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 운영 체제는 세계에서 가장 인기 있는 운영 체제 중 하나이며, 새로운 버전의 Win11이 많은 주목을 받았습니다. Win11 시스템에서 관리자 권한을 얻는 것은 사용자가 시스템에서 더 많은 작업과 설정을 수행할 수 있도록 하는 중요한 작업입니다. 이번 글에서는 Win11 시스템에서 관리자 권한을 얻는 방법과 권한을 효과적으로 관리하는 방법을 자세히 소개하겠습니다. Win11 시스템에서 관리자 권한은 로컬 관리자와 도메인 관리자의 두 가지 유형으로 나뉩니다. 로컬 관리자는 로컬 컴퓨터에 대한 모든 관리 권한을 갖습니다.

Angular.js는 동적 애플리케이션을 만들기 위해 자유롭게 액세스할 수 있는 JavaScript 플랫폼입니다. HTML 구문을 템플릿 언어로 확장하여 애플리케이션의 다양한 측면을 빠르고 명확하게 표현할 수 있습니다. Angular.js는 코드를 작성, 업데이트 및 테스트하는 데 도움이 되는 다양한 도구를 제공합니다. 또한 라우팅 및 양식 관리와 같은 많은 기능을 제공합니다. 이 가이드에서는 Ubuntu24에 Angular를 설치하는 방법에 대해 설명합니다. 먼저 Node.js를 설치해야 합니다. Node.js는 서버 측에서 JavaScript 코드를 실행할 수 있게 해주는 ChromeV8 엔진 기반의 JavaScript 실행 환경입니다. Ub에 있으려면

OracleSQL의 나눗셈 연산에 대한 자세한 설명 OracleSQL에서 나눗셈 연산은 두 숫자를 나눈 결과를 계산하는 데 사용되는 일반적이고 중요한 수학 연산입니다. 나누기는 데이터베이스 쿼리에 자주 사용되므로 OracleSQL에서 나누기 작업과 사용법을 이해하는 것은 데이터베이스 개발자에게 필수적인 기술 중 하나입니다. 이 기사에서는 OracleSQL의 나누기 작업 관련 지식을 자세히 설명하고 독자가 참고할 수 있는 특정 코드 예제를 제공합니다. 1. OracleSQL의 Division 연산

SpringDataJPA는 JPA 아키텍처를 기반으로 하며 매핑, ORM 및 트랜잭션 관리를 통해 데이터베이스와 상호 작용합니다. 해당 리포지토리는 CRUD 작업을 제공하고 파생 쿼리는 데이터베이스 액세스를 단순화합니다. 또한 지연 로딩을 사용하여 필요한 경우에만 데이터를 검색하므로 성능이 향상됩니다.

논문 주소: https://arxiv.org/abs/2307.09283 코드 주소: https://github.com/THU-MIG/RepViTRepViT는 모바일 ViT 아키텍처에서 잘 작동하며 상당한 이점을 보여줍니다. 다음으로, 본 연구의 기여를 살펴보겠습니다. 기사에서는 경량 ViT가 일반적으로 시각적 작업에서 경량 CNN보다 더 나은 성능을 발휘한다고 언급했는데, 그 이유는 주로 모델이 전역 표현을 학습할 수 있는 MSHA(Multi-Head Self-Attention 모듈) 때문입니다. 그러나 경량 ViT와 경량 CNN 간의 아키텍처 차이점은 완전히 연구되지 않았습니다. 본 연구에서 저자는 경량 ViT를 효과적인

Angular 프레임워크의 구성 요소에 대한 기본 표시 동작은 블록 수준 요소에 대한 것이 아닙니다. 이 디자인 선택은 구성 요소 스타일의 캡슐화를 촉진하고 개발자가 각 구성 요소가 표시되는 방법을 의식적으로 정의하도록 장려합니다. CSS 속성 표시를 명시적으로 설정하면 Angular 구성 요소의 표시를 완전히 제어하여 원하는 레이아웃과 응답성을 얻을 수 있습니다.

PHP의 모듈로 연산자(%)는 두 숫자를 나눈 나머지를 구하는 데 사용됩니다. 이 글에서는 모듈로 연산자의 역할과 사용법을 자세히 논의하고 독자의 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. 1. 모듈로 연산자의 역할 수학에서는 정수를 다른 정수로 나누면 몫과 나머지가 나옵니다. 예를 들어 10을 3으로 나누면 몫은 3이고 나머지는 1입니다. 이 나머지를 얻기 위해 모듈로 연산자가 사용됩니다. 2. 모듈러스 연산자의 사용법 PHP에서는 모듈러스를 나타내기 위해 % 기호를 사용합니다.

Linux 시스템 호출 system() 함수에 대한 자세한 설명 시스템 호출은 Linux 운영 체제에서 매우 중요한 부분으로 시스템 커널과 상호 작용하는 방법을 제공합니다. 그 중 system() 함수는 흔히 사용되는 시스템 호출 함수 중 하나이다. 이 기사에서는 system() 함수의 사용법을 자세히 소개하고 해당 코드 예제를 제공합니다. 시스템 호출의 기본 개념 시스템 호출은 사용자 프로그램이 운영 체제 커널과 상호 작용하는 방법입니다. 사용자 프로그램은 시스템 호출 기능을 호출하여 운영 체제를 요청합니다.
