今回は、Angular コンポーネント間の値の転送と通信の使用方法について詳しく説明します。Angular コンポーネント間の値の転送と通信に関する 注意事項 は何ですか。実際のケースを見てみましょう。
この記事では、Angular がさまざまなコンポーネントでどのように値を転送し、通信するかを主に紹介します。主に親子コンポーネントと非親子コンポーネントに分かれます。親コンポーネントと子コンポーネント間のパラメータと通信方法
イベント通信を使用する (EventEmitter、@Output):
シナリオ: 通信は親コンポーネントと子コンポーネントの間で実行でき、通常は子コンポーネントで親コンポーネントにメッセージを渡すために使用されます。 手順: 子コンポーネントはイベント EventEmitter オブジェクトを作成し、 @output を使用して公開します。親コンポーネントは子コンポーネント @output からのメソッドをリッスンして、イベントを処理します。- コード:
-
// child 组件 @Component({ selector: 'app-child', template: '', styles: [``] }) export class AppChildComponent implements OnInit { @Output() onVoted: EventEmitter<any> = new EventEmitter(); ngOnInit(): void { this.onVoted.emit(1); } } // parent 组件 @Component({ selector: 'app-parent', template: ` <app-child></app-child> `, styles: [``] }) export class AppParentComponent implements OnInit { ngOnInit(): void { throw new Error('Method not implemented.'); } onListen(data: any): void { console.log('TAG' + '---------->>>' + data); } }</any>
シナリオ: 通常、親コンポーネントが子コンポーネントに情報を渡すために、または親コンポーネントが子コンポーネントのメソッドを呼び出すために使用されます。 手順:
親コンポーネントで子コンポーネントを使用します
親コンポーネントで @ViewChild を使用して、子コンポーネントのオブジェクトを取得します。- 親コンポーネントは、子コンポーネント オブジェクトを使用して子コンポーネントを制御します (情報を渡すか、メソッドを呼び出します)。
-
コード:
rrree - 親子コンポーネント以外のパラメータの受け渡しと通信メソッド
シナリオ: あるコンポーネントは、リストや編集などのルーティングを通じて別のコンポーネントにジャンプできます
手順:コンポーネント A は、routerLink、router.navigate、または router.navigateByUrl を使用してコンポーネント B にジャンプします。コンポーネント B は、これらのパラメータを受け入れます。 このメソッドは、コンポーネント間のパラメータの転送にのみ適しています。パラメータは一度受信されると変更されません
。 コード 配送方法 ルーターリンク- りぃ
-
router.navigate
// 子组件 @Component({ selector: 'app-child', template: '', styles: [``] }) export class AppChildComponent2 implements OnInit { data = 1; ngOnInit(): void { } getData(): void { console.log('TAG' + '---------->>>' + 111); } } // 父组件 @Component({ selector: 'app-parent2', template: ` <app-child></app-child> `, styles: [``] }) export class AppParentComponent2 implements OnInit { @ViewChild(AppChildComponent2) child: AppChildComponent2; ngOnInit(): void { this.child.getData(); // 父组件获得子组件方法 console.log('TAG'+'---------->>>'+this.child.data);// 父组件获得子组件属性 } }
router.navigateByUrl - パラメータ転送側がパラメータを渡した後、受信側には次の 2 つの受信方法があります: スナップショット りぃ
<a></a> routerLink=["/exampledetail",{queryParams:object}] routerLink=["/exampledetail",{queryParams:'id':'1','name':'yxman'}];
this.router.navigate(['/exampledetail',id]); this.router.navigate(['/exampledetail'],{queryParams:{'name':'yxman'}});
サービスを使用して通信します。つまり、2 つのコンポーネントが同時にサービスを注入します
シナリオ: 通信する必要がある 2 つのコンポーネントは、親子コンポーネントや隣接するコンポーネントではありません。もちろん、任意のコンポーネントにすることもできます。 手順: 新しいサービスを作成すると、コンポーネント A とコンポーネント B が同時にサービスに挿入されますコンポーネント A はサービスからデータを取得するか、サービスにデータを送信しようとします
コンポーネント B はサービスからデータを取得しますサービスにアクセスするか、サービスにデータを送信したいと考えています。
コード:rrree
- メッセージサービスモジュール
- シナリオ: これには、すべてのコンポーネントが通信できる必要があるプロジェクト、または 1 つのコンポーネントが複数のコンポーネントと通信できる必要があり、パラメーターをルーティング経由で渡すことができないプロジェクトが含まれます。
- デザイン方法:
- RxJs を使用してサービス モジュール MessageService を定義すると、すべての情報がこのサービスに登録されます メッセージを送信する必要がある場合はサービスのメソッドを呼び出します
情報を受信する必要がある場合はそれを呼び出します。情報を受信するメソッド、Subscription オブジェクトを取得し、情報をリッスンします
もちろん、各コンポーネントが破棄されるときは
- が必要です。
コード:
import { ActivateRoute } from '@angular/router'; public data: any; export class ExampledetailComponent implements OnInit { constructor( public route: ActivateRoute ) { }; ngOnInit(){ this.data = this.route.snapshot.params['id']; }; }
ここでの MessageService は、ブロードキャスト メカニズムを使用してすべてのコンポーネント間で情報を転送するのと同等です。数値、文字列、オブジェクトを問わず、転送することができ、伝播速度も非常に高速です。 - この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:
this.router.navigateByUrl('/exampledetail/id'); this.router.navigateByUrl('/exampledetail',{queryParams:{'name':'yxman'}});
以上がAngularコンポーネント間の値の転送と通信の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









