コンポーネント、モジュール、ルーティング、フォーム、RxJS など、開発者が知っておくべき重要な Angular トピックを学びます。詳細な説明と図を使って、スケーラブルで動的な Web アプリケーションを構築する方法を学びます。
1. Angular アーキテクチャ
主要な概念:
モジュール (NgModule): アプリケーションをまとまったブロックに編成します。
例: AppModule は、アプリが開始されるルート モジュールです。
コンポーネント: UI を定義し、特定のビューのロジックを処理します。
例: ログイン フォームの LoginComponent。
テンプレート: 動的ビュー用の Angular の構文を含む HTML。
ディレクティブ: HTML 要素を変更します。
構造ディレクティブ: レイアウトを変更します (例: *ngIf)。
属性ディレクティブ: 外観または動作を変更します (例: [style])。
サービス: ビジネス ロジックをカプセル化し、コンポーネント間で再利用可能。
依存関係の注入 (DI): サービスをコンポーネントに注入して依存関係を管理します。
グラフの例:
Modules (NgModule) | Components <--> Templates | Directives (Structural, Attribute) | Services --> Injected into Components
モジュールはアプリケーションを編成します。コンポーネントはビジュアルを管理し、サービスはコンポーネント間で共有されるビジネス ロジックを処理します。
2.コンポーネントとテンプレート
主な機能:
コンポーネントのライフサイクル フック: コンポーネントの作成、更新、破棄時の動作を定義します。
共通フック:
ngOnInit(): コンポーネントが初期化されると呼び出されます。
ngOnDestroy(): コンポーネントが削除される前にクリーンアップします。
データバインディング:
補間 ({{}}): データを動的に表示します。
プロパティ バインディング ([プロパティ]): DOM プロパティをコンポーネント データにバインドします。
イベント バインディング ((event)): クリックなどのユーザー アクションをリッスンします。
双方向バインディング ([(ngModel)]): ビューとコンポーネントの間でデータを同期します。
テンプレート参照変数: #var.
を使用して再利用可能な DOM 要素を定義します。 グラフの例:
Component (Logic + Data) <-- Data Binding --> Template (View) Lifecycle Hooks: Init -> Update -> Destroy
主な利点: UI とコンポーネント ロジック間のリアルタイムの対話。
3.モジュール
モジュールは、Angular アプリケーションを個別の機能ブロックに編成します。
キーの種類:
ルート モジュール (AppModule): アプリケーションのエントリ ポイント。
機能モジュール: ユーザー管理や製品表示などの特定の機能に焦点を当てます。
共有モジュール: 再利用可能なコンポーネント、ディレクティブ、パイプが含まれます。
遅延読み込み: 初期読み込み時間を短縮するために、必要な場合にのみモジュールを読み込みます。
例:
e コマース アプリを想像してください:
AppModule: ルート モジュール。
ProductsModule: 製品を表示するための機能モジュール。
AuthModule: ユーザー認証用の機能モジュール
グラフの例:
AppModule (Root) | Feature Modules (Lazy Loaded) --> Shared Module
利点: 保守性を高めるモジュール式アーキテクチャ。
4.ルーティングとナビゲーション
主な機能:
ルーターモジュール構成: URL をコンポーネントにマップします。
ルート ガード: ルートへのアクセスを制御します。
例: CanActivate を使用して、権限のないユーザーを防止します。
遅延読み込み: ルートとそのモジュールをオンデマンドで読み込みます。
クエリパラメータとルートパラメータ:
クエリパラメータ: /products?category=electronics
ルートパラメータ: /products/:id
グラフの例:
Modules (NgModule) | Components <--> Templates | Directives (Structural, Attribute) | Services --> Injected into Components
利点: 効率的なナビゲーションと構造化された URL マッピング。
5.依存関係の注入
依存関係の挿入 (DI) は、Angular がオブジェクトの依存関係を管理するために使用する設計パターンです。
主要な概念:
階層型インジェクター: Angular は、モジュール、コンポーネント、サービスのインジェクターのツリーを維持します。
シングルトン サービス: 一度インスタンス化され、アプリ全体で共有されるサービス。
インジェクショントークン: 依存関係のカスタム識別子。
利点:
カップリングを軽減します。
コードの再利用が増加します。
グラフの例:
Component (Logic + Data) <-- Data Binding --> Template (View) Lifecycle Hooks: Init -> Update -> Destroy
利点: 再利用可能、保守可能、スケーラブルなコード。
6.フォーム
Angular は、フォームを処理するための 2 つの強力なメソッドを提供します。
テンプレート駆動型フォーム:
シンプルで宣言的です。
ngModel.
のようなディレクティブを使用してテンプレート内で直接定義されます。
リアクティブフォーム:
FormBuilder と FormGroup を使用してさらに制御します。
動的なフォームと複雑な検証の管理が簡単になります。
共通の機能:
バリデータ: 組み込み (必須、minLength) およびカスタム。
動的フォーム: フォーム コントロールをプログラムで生成します。
グラフの例:
AppModule (Root) | Feature Modules (Lazy Loaded) --> Shared Module
利点: 簡単な検証と動的なフォーム。
7. Observable と RxJS
Observable はデータのストリームであり、RxJS はこれらのストリームを操作するためのオペレーターを提供します。
主要な概念:
Observables: 時間の経過とともに複数の値を放出します。
主題: マルチキャスト ストリーム。
オペレーター:
マップ: データを変換します。
filter: 条件に基づいてデータをフィルタリングします。
switchMap: ネストされた Observable を処理します。
使用例: 検索入力ボックスからデータを出力することで、リアルタイムの検索結果を処理します。
グラフの例:
Router Module | Routes --> Guards (Access Control) | Child Routes
利点: リアルタイム データと複雑な非同期ロジックを効率的に処理します。
8. HTTP クライアント
Angular HTTP クライアントは、バックエンド API との通信を簡素化します。
特徴:
CRUD 操作: GET、POST、PUT、DELETE を実行します。
インターセプター: リクエストをグローバルに変更するか、エラーを処理します。
Observables: RxJS を使用して非同期 HTTP リクエストを処理します。
例:
ユーザーデータを取得する GET リクエスト: /api/users.
インターセプターを使用して認証トークンをアタッチします。
グラフの例:
Module Injector --> Component Injector --> Child Injector | Services (Shared Logic)
利点: バックエンド API との通信が簡素化されます。
9.パイプ
パイプは、UI に表示する前にデータを変換します。
タイプ:
組み込みパイプ: 事前定義された変換。
DatePipe: 日付をフォーマットします。
CurrencyPipe: 通貨をフォーマットします。
カスタム パイプ: 特定の変換を作成します。
純粋なパイプと不純なパイプ:
Pure Pipes: 効率的で、入力が変更された場合にのみ実行されます。
不純なパイプ: 変更が検出されるたびに再計算します。
グラフの例:
Modules (NgModule) | Components <--> Templates | Directives (Structural, Attribute) | Services --> Injected into Components
利点: 簡単で再利用可能なデータ変換。
10. Angular CLI
特徴:
生成: CLI コマンドを使用してコンポーネント、サービスなどを作成します。
ビルドと提供: アプリケーションをローカルまたは運用環境で実行します。
構成: angular.json.
を使用してビルドをカスタマイズします。
グラフの例:
Component (Logic + Data) <-- Data Binding --> Template (View) Lifecycle Hooks: Init -> Update -> Destroy
利点: 開発をスピードアップし、一貫性を確保します。
以上がAngular をマスターする: スケーラブルな Web アプリケーションを構築するための重要なトピックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。