コンポーネント

コンポーネントはビュー (View) を制御します。ビューは画面の一部分です。

コンポーネントは @Component 修飾子のついたメタデータをもつ TypeScript クラスです。

メタデータにてビューの HTML テンプレートを定義し、同クラス内のメンバーによってテンプレート内のデータを制御します。

もっと一般的に言うとコンポーネントはディレクティブの一形態ですが、コンポーネントは Angular にて非常に重要なので区別されます。

具体的にみてみましょう。「クイック・スタート」で作成したプロジェクト helloworld があれば開いてください。

ルートモジュール (AppModule) は src/app/app.module.ts で定義されていましたね。 ここで、起動時に読み込まれるコンポーネント、すなわちブートストラップコンポーネントとして指定されていたコンポーネントは、AppComponent というコンポーネントでした。

AppComponent は src/app/app.component.ts にて定義されています。app.component.ts は次の内容です。

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

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
})
export class AppComponent {
  title = 'app works!';
}

selector は、このコンポーネントを表すタグになります。 ここでは app-root となっているので、HTML に app-root タグが書いてある箇所にこのコンポーネントを表示することになります。

ちなみに、src/index.html で app-root が使われています。ここに AppComponent が読み込まれるわけです。

<!doctype html>
<html>
...
<body>
  <app-root>Loading...</app-root>
</body>
</html>

templateUrl はこのコンポーネントのテンプレートです。

templateUrl の代わりに template 属性として、ここに直接テンプレートを記述することもできます。

styleUrls ではこのコンポーネントが使う CSS を指定します。

テンプレート