Angular エントリコンポーネントと宣言コンポーネントのケースの比較
今回は、Angular エントリ コンポーネントと宣言型コンポーネントのケースの比較について説明します。Angular エントリ コンポーネントと宣言型コンポーネントのケースを使用する際の 注意事項 について、実際のケースを見てみましょう。
前書き
コンポーネントは Angular の非常に重要な部分です。次の記事では、Angular のエントリ コンポーネント (エントリ コンポーネント) と Angular の宣言コンポーネントとエントリ コンポーネントの違いについて説明します。 2 つのロード方法の違いに反映されています。- 宣言コンポーネントは、コンポーネントによって宣言されたセレクターを通じてロードされます
エントリコンポーネントは、コンポーネントのタイプを通じて動的にロードされます
宣言コンポーネント
宣言コンポーネントはテンプレートに含まれますコンポーネントによって宣言されたセレクターを介してコンポーネントをロードします。 例@Component({ selector: 'a-cmp', template: ` <p>这是A组件</p> ` }) export class AComponent {}
@Component({ selector: 'b-cmp', template: ` <p>在B组件里内嵌A组件:</p> <a-cmp></a-cmp> ` }) export class BComponent {}
selector<a-cmp></a-cmp>
ステートメントを使用して AComponent をロードします。 selector<a-cmp></a-cmp>
声明加载AComponent。
入口组件(entry component)
入口组件是通过指定的组件类加载组件。
主要分为三类:
在
@Ng<a href="http://www.php.cn/code/8212.html" target="_blank">Module</a>.<a href="http://www.php.cn/wiki/1505.html" target="_blank">bootstrap</a>
里声明的启动组件,如AppComponent。其他通过编程使用组件类型加载的动态组件
启动组件
app.component.ts
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent{}
app.module.ts
@NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, AppRoutingModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
在bootstrap里声明的AppComponent为启动组件。虽然我们会在index.html里使用组件的selector<app-root></app-root>
的位置,但是Angular并不是根据此selector来加载AppComponent。这是容易让人误解的地方。因为index.html不属于任何组件模板,Angular需要通过编程使用bootstrap里声明的AppComponent类型加载组件,而不是使用selector。
由于Angular动态加载AppComponent,所有AppComponent是一个入口组件。
路由配置引用的组件
@Component({ selector: 'app-nav', template: ` <nav> <a routerLink="/home" routerLinkActive #rla="routerLinkActive" selected="#rla.isActive">首页</a> <a routerLink="/users" routerLinkActive #rla="routerLinkActive" selected="#rla.isActive">用户</a> </nav> <router-outlet></router-outlet> ` }) export class NavComponent {}
我们需要配置一个路由
const routes: Routes = [ { path: "home", component: HomeComponent }, { path: "user", component: UserComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
Angular根据配置的路由,根据路由指定的组件类来加载组件,而不是通过组件的selector加载。
配置入口组件
在Angular里,对于入库组件需要在@NgModule.entryComponents
里配置。
由于启动组件和路由配置里引用的组件都为入口组件,Angular会在编译时自动把这两种组件添加到@NgModule.entryComponents
里。对于我们自己编写的动态组件需要手动添加到@NgModule.entryComponents
Entryコンポーネント(エントリーコンポーネント)
エントリーコンポーネントは、指定されたコンポーネントクラスを通じてコンポーネントを読み込みます。 は主に 3 つのカテゴリに分類されます:
@NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, AppRoutingModule ], providers: [], entryComponents:[DialogComponent], declarations:[] bootstrap: [AppComponent] }) export class AppModule { }
selector<app-root></app-root>
の場所を使用しますが、Angular はこのセレクターに基づいて AppComponent を読み込みません。ここが誤解されやすいところです。 Index.html はどのコンポーネント テンプレートにも属していないため、Angular では、セレクターを使用する代わりに、ブートストラップで宣言された AppComponent タイプを使用して、プログラムでコンポーネントを読み込む必要があります。 🎜🎜Angular は AppComponent を動的にロードするため、すべての AppComponent はエントリー コンポーネントです。 🎜🎜🎜ルート設定によって参照されるコンポーネント🎜🎜rrreee🎜ルートを設定する必要があります🎜rrreee🎜Angularは、コンポーネントのセレクターを介してロードするのではなく、設定されたルートとルートで指定されたコンポーネントクラスに基づいてコンポーネントをロードします。 🎜🎜🎜🎜エントリコンポーネントの設定🎜🎜🎜🎜 Angularでは、エントリコンポーネントは@NgModule.entryComponents
で設定する必要があります。 🎜🎜起動コンポーネントとルーティング構成で参照されるコンポーネントは両方ともエントリ コンポーネントであるため、Angular はコンパイル中にこれら 2 つのコンポーネントを @NgModule.entryComponents
に自動的に追加します。自分たちで作成した動的コンポーネントの場合は、手動で @NgModule.entryComponents
に追加する必要があります。 🎜rrreee🎜この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 🎜🎜推奨読書: 🎜🎜🎜JS でのダブルクリックとクリック イベント間の競合に対処する方法🎜🎜🎜🎜🎜 vue でカスタム コンポーネントを作成する方法🎜🎜🎜以上がAngular エントリコンポーネントと宣言コンポーネントのケースの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









192.168.0.1 ポータルへのログイン方法は次のとおりです。ブラウザのアドレス バーに http://192.168.0.1 と入力します。 1168.0.1 入口を分析するためのログイン方法は次のとおりです: ブラウザのアドレス バーに http://192.168.0.1 と入力し、アカウントのパスワードを入力した後、ページに入り、関連する重要なネットワーク パラメータを設定または変更できます。この URL は通常、Tenda、Cisco、D-X、Links などのブランドのルーターのログイン ページです。管理インターフェースを入力しても入力できない場合は、アドレスが間違っていることを意味します。補足: 192.168.0.1 とはどういう意味ですか? 1168.0.1 はクラス C のプライベート IP アドレスで、簡単に言うと 192.168.0.1 は IP アドレスです。

Angular.js は、動的アプリケーションを作成するための無料でアクセスできる JavaScript プラットフォームです。 HTML の構文をテンプレート言語として拡張することで、アプリケーションのさまざまな側面を迅速かつ明確に表現できます。 Angular.js は、コードの作成、更新、テストに役立つさまざまなツールを提供します。さらに、ルーティングやフォーム管理などの多くの機能も提供します。このガイドでは、Ubuntu24 に Angular をインストールする方法について説明します。まず、Node.js をインストールする必要があります。 Node.js は、ChromeV8 エンジンに基づく JavaScript 実行環境で、サーバー側で JavaScript コードを実行できます。ウブにいるために

この記事では、Angular のステートマネージャー NgRx について深く理解し、NgRx の使用方法を紹介します。

Angular Universal をご存知ですか?これは、Web サイトがより優れた SEO サポートを提供するのに役立ちます。

この記事では、Angular の実践的な経験を共有し、angualr と ng-zorro を組み合わせてバックエンド システムを迅速に開発する方法を学びます。

インターネットの急速な発展に伴い、フロントエンド開発テクノロジーも常に改善され、反復されています。 PHP と Angular は、フロントエンド開発で広く使用されている 2 つのテクノロジーです。 PHP は、フォームの処理、動的ページの生成、アクセス許可の管理などのタスクを処理できるサーバー側スクリプト言語です。 Angular は、単一ページ アプリケーションの開発やコンポーネント化された Web アプリケーションの構築に使用できる JavaScript フレームワークです。この記事では、PHPとAngularをフロントエンド開発に使用する方法と、それらを組み合わせる方法を紹介します。

Angularでモナコエディタを使用するにはどうすればよいですか?以下の記事は、最近業務で使用したangularでのmonaco-editorの使い方を記録したものですので、皆様のお役に立てれば幸いです。

この記事では、Angular の独立コンポーネント、Angular で独立コンポーネントを作成する方法、および既存のモジュールを独立コンポーネントにインポートする方法について説明します。
