Angular コンポーネントは Angular アプリケーションの基盤であり、ユーザー インターフェイスのモジュール式の再利用可能な部分を構築する方法を提供します。このガイドでは、Angular コンポーネントの構造からベスト プラクティスまで、Angular コンポーネントの基本について説明します。 Angular を初めて使用する場合でも、復習したい場合でも、この記事は Angular のコンポーネントの基本を理解するのに役立ちます。
Angular では、コンポーネントはユーザー インターフェイス (UI) の一部を制御するクラスです。ボタン、タブ、入力、フォーム、ドロワー (実際には UI のあらゆる部分) について考えてみましょう。各コンポーネントは自己完結型であり、以下で構成されます:
コンポーネントは、それぞれがヘッダー、サイドバー、カードなどのページの特定の部分を表すことができるため、モジュラー アプリケーションの作成に不可欠です。
Angular コンポーネントは @Component デコレーターを使用して定義され、必要なテンプレート、スタイル、セレクターで構成されます。基本的な例を次に示します:
import { Component } from '@angular/core'; @Component({ selector: 'app-example', templateUrl: './example.component.html', styleUrls: ['./example.component.css'] }) export class ExampleComponent { title: string = 'Hello, Angular!'; getTitle() { return this.title; } }
この例では:
Angular プロジェクトは通常、コンポーネントとその関連ファイルを 1 つのフォルダーに整理し、Angular CLI の使用時に自動的に作成されます。コンポーネントの一般的なフォルダー構造には次のものが含まれます:
Angular コンポーネントには、開発者がさまざまな段階でアクションを実行できるようにするフックを備えたライフサイクルがあります。一般的に使用されるライフサイクル フックには次のものがあります。
たとえば、ngOnInit の使用方法は次のとおりです。
import { Component } from '@angular/core'; @Component({ selector: 'app-example', templateUrl: './example.component.html', styleUrls: ['./example.component.css'] }) export class ExampleComponent { title: string = 'Hello, Angular!'; getTitle() { return this.title; } }
ライフサイクル フックは柔軟性を提供し、コンポーネントのライフサイクルの特定の段階でロジックを管理しやすくします。
実際のアプリケーションでは、データを共有したりアクションをトリガーしたりするために、コンポーネントが相互に対話する必要があることがよくあります。 Angular は、コンポーネント通信のためのいくつかのメソッドを提供します。
例:
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-lifecycle', template: '<p>Lifecycle example</p>', }) export class LifecycleComponent implements OnInit { ngOnInit() { console.log('Component initialized!'); } }
// child.component.ts import { Component, Input, Output, EventEmitter } from '@angular/core'; @Component({ selector: 'app-child', template: `<button (click)="sendMessage()">Send Message</button>`, }) export class ChildComponent { @Input() childMessage: string; @Output() messageEvent = new EventEmitter<string>(); sendMessage() { this.messageEvent.emit('Message from child!'); } }
コンポーネントが親子関係にない場合、Angular サービスはデータとロジックを共有する簡単な方法を提供します。サービスはデフォルトでシングルトンです。つまり、アプリ全体でインスタンスが 1 つだけ存在します。
<!-- parent.component.html --> <app-child [childMessage]="parentMessage" (messageEvent)="receiveMessage($event)"></app-child>
さまざまなコンポーネントでのサービスの使用:
import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class SharedService { private messageSource = new BehaviorSubject<string>('Default Message'); currentMessage = this.messageSource.asObservable(); changeMessage(message: string) { this.messageSource.next(message); } }
// component-one.ts import { Component } from '@angular/core'; import { SharedService } from '../shared.service'; @Component({ selector: 'app-component-one', template: `<button (click)="changeMessage()">Change Message</button>`, }) export class ComponentOne { constructor(private sharedService: SharedService) {} changeMessage() { this.sharedService.changeMessage('Hello from Component One'); } }
Angular コンポーネントは、スケーラブルなモジュール型アプリケーションの構築の中核です。構造、ライフサイクル、通信方法を理解することで、理解しやすく、構築しやすい効率的で保守可能なアプリケーションを作成できます。
次の記事では、Angular コンポーネントのライフサイクルをさらに詳しく説明し、各フックとそれを使用してコンポーネントを効果的に管理する方法を検討します。 Angular の強力なライフサイクル機能をさらに詳しく見ていきますので、ご期待ください!
以上がAngular のコンポーネントを理解するための基本ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。