Angularコンポーネントとモジュールの違いは何ですか


186

私はビデオを見たり記事を読んだりしてきましたが、この特定の記事は、記事の冒頭にあるように私をとても混乱させます

Angularのアプリケーションはモジュール構造に従います。Angularアプリには、それぞれが単一の目的に特化した多くのモジュールが含まれます。通常、モジュールは、Angularアプリを実行するために他のモジュールと統合されたコードのまとまりのあるグループです。

モジュールは、コードからいくつかのクラス、関数、値をエクスポートします。コンポーネントはAngularの基本的なブロックであり、複数のコンポーネントがアプリケーションを構成します。

モジュールは、別のモジュールのライブラリにすることができます。たとえば、主要なAngularライブラリモジュールであるangular2 / coreライブラリは、別のコンポーネントによってインポートされます。

それらは交換可能な条件ですか?コンポーネントはモジュールですか?しかし、逆ではないのですか?

回答:


246

コンポーネントはビュー(html)を制御します。また、他のコンポーネントやサービスと通信して、アプリに機能を提供します。

モジュールは、1つ以上のコンポーネントで構成されています。HTMLを制御しません。モジュールは、他のモジュールに属するコンポーネントが使用できるコンポーネント、依存関係インジェクターによって注入されるクラス、およびブートストラップされるコンポーネントを宣言します。モジュールを使用すると、コンポーネントを管理して、アプリにモジュール性を持たせることができます。


190

回答を投稿するのは遅すぎますが、Angularの初心者を理解するのは簡単だと思います。以下は、私がプレゼンテーション中に提供する例の1つです。

角度のあるアプリケーションを建物と考えてください。建物には、N複数のアパートメントを含めることができます。アパートはモジュールと見なされます。次に、Apartmentは、Nコンポーネントと呼ばれるAngularアプリケーションのビルディングブロックに対応するいくつかの部屋を持つことができます。

これで、各アパートメント(モジュール)には、部屋(コンポーネント)、リフト(サービス)、アパートメントへのより大きな移動を可能にするエレベーター(サービス)、情報を移動してアパートメントで役立つワイヤ(パイプ)があります。

また、スイミングプール、テニスコートなど、建物のすべての住人が共有する場所もあります。したがって、これらはSharedModule内のコンポーネントと見なすことができます。

基本的に、その違いは次のとおりです。

モジュールとコンポーネントの主な違いを示す表

スライドをフォローして、Angularアプリケーションの構成要素を理解してください

これが私のセッションです Building Blocks of Angular for beginners


71

ここに画像の説明を入力してください

最も簡単な説明:

モジュールは、コンポーネント、サービス、パイプと呼ばれる1つ以上の小さなコンテナーを含む大きなコンテナーのようなものです

A コンポーネントが含まれています。

  • HTMLテンプレートまたはHTMLコード

  • コード(TypeScript)

  • サービス:コンポーネントによって共有される再利用可能なコードであるため、コードの書き換えは必要ありません

  • パイプ:データを入力として受け取り、目的の出力に変換します


2
このすべてに夢中ではありません。はい、コンポーネントはサービスを使用しますが、サービスはモジュール内のプロバイダー配列で示される必要があります。あなたの図はこれを示していません。
スコット

コンポーネント内の子モジュールとそのモジュールにいくつかのコンポーネントを追加できますか?
Satrughna、

39

角度コンポーネント

コンポーネントは、Angularアプリの基本的なビルディングブロックの1つです。アプリは複数のコンポーネントを持つことができます。通常のアプリでは、コンポーネントにはHTMLビューページのクラスファイル、HTMLページの動作を制御するクラスファイル、およびHTMLビューのスタイルを設定するためのCSS / scssファイルが含まれています。コンポーネントは@Component@angular/coreモジュールの一部であるデコレーターを使用して作成できます。

import { Component } from '@angular/core';

コンポーネントを作成する

@Component({selector: 'greet', template: 'Hello {{name}}!'})
class Greet {
  name: string = 'World';
}

コンポーネントまたはAngularアプリを作成するには、ここにチュートリアルがあります

角度モジュール

角度のモジュールは、のような角度の基本的なビルディングブロックで設定されているコンポーネントディレクティブサービスアプリは複数のモジュールを持つことができるなど。

モジュールは、@NgModuleデコレーターを使用して作成できます。

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

14

Angular 2のモジュールは、コンポーネント、ディレクティブ、サービスなどから作成されたものです。1つまたは複数のモジュールを組み合わせてアプリケーションを作成します。モジュールは、アプリケーションを論理的なコードに分割します。各モジュールは単一のタスクを実行します。

Angular 2のコンポーネントは、表示したいページのロジックを記述するクラスです。コンポーネントはビュー(html)を制御します。コンポーネントは他のコンポーネントやサービスと通信します。


10

https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-L9vDDYxu6nH7FVBtFFS%2F-LBvB_WpCSzgVF0c4R9W%2F-LBvCVC22B-3Ls3_nyuC%2Fangular%sAngalt=jpg 624c03ca-e24f-457d-8aa7-591d159e573c

写真は千の言葉に値する!

Angularの概念は非常に単純です。「レンガ」-> モジュールでアプリを「構築」することを提案します。

この概念により、コードをより適切に構造化し、再利用と共有を容易にすることができます。

AngularモジュールとES2015 / TypeScriptモジュールを混同しないように注意してください。

Angularモジュールに関しては、それは以下のためのメカニズムです:

1-グループコンポーネント(サービス、ディレクティブ、パイプなども含む)

2-依存関係を定義する

3-それらの可視性を定義します。

Angularモジュールは、クラス(通常は空)とNgModuleデコレーターで簡単に定義されます。


5

コンポーネントはthe template(view) + a class (Typescript code) containing some logic for the view + metadata(to tell angular about from where to get data it needs to display the template)です。

モジュールbasically group the related components, services together。これにより、独立して実行できる機能のチャンクを作成できます。たとえば、アプリには、ダッシュボードなどのアプリの特定の機能のコンポーネントをグループ化するための機能用のモジュールを含めることができます。ダッシュボードは、別のアプリケーション内で簡単に取得して使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.