NgModule の宣言、プロバイダー、インポートの違いは何ですか? 質問する

NgModule の宣言、プロバイダー、インポートの違いは何ですか? 質問する

私は Angular (Angular2+ と呼ばれることもあります) を理解しようとしていたのですが、次のようなことに遭遇しました@Module:

  1. 輸入

  2. 宣言

  3. プロバイダー

続くAngular クイックスタート

ベストアンサー1

角度の概念

  • imports他のモジュールのエクスポートされた宣言を現在のモジュールで使用できるようにします
  • declarations現在のモジュールのディレクティブ (コンポーネントとパイプを含む) を、現在のモジュール内の他のディレクティブで使用できるようにします。ディレクティブ、コンポーネント、またはパイプのセレクターは、宣言またはインポートされている場合にのみ HTML と照合されます。
  • providersサービスと値を DI (依存性注入) に認識させるためです。これらはルート スコープに追加され、依存関係として持つ他のサービスまたはディレクティブに注入されます。

の特殊なケースは、providers独自の子インジェクターを取得する遅延ロード モジュールです。providers遅延ロード モジュールの は、デフォルトではこの遅延ロード モジュールにのみ提供されます (他のモジュールの場合のようにアプリケーション全体に提供されるわけではありません)。

モジュールの詳細については、以下も参照してください。モジュール

  • exportsは、このモジュールを追加するモジュールでコンポーネント、ディレクティブ、およびパイプを使用できるようにしますimportsexportsまた、共有モジュールでよく行われる CommonModule や FormsModule などのモジュールを再エクスポートするためにも使用できます。

  • entryComponentsは、オフライン コンパイル用にコンポーネントを登録し、 で使用できるようにしますViewContainerRef.createComponent()。ルータ構成で使用されるコンポーネントは暗黙的に追加されます。

TypeScript (ES2015) インポート

import ... from 'foo/bar'(どれの解決されるかもしれないindex.ts) は TypeScript のインポート用です。別の TypeScript ファイルで宣言されている識別子を TypeScript ファイル内で使用する場合は、必ずこれらが必要になります。

Angular@NgModule() importsと TypeScript はまったく異なる概念importです。

参照jDriven - TypeScript と ES6 のインポート構文

それらのほとんどは、実際には TypeScript でも使用されている単純な ECMAScript 2015 (ES6) モジュール構文です。

おすすめ記事