Angular6-components
Angular 6-コンポーネント
Angular 6での開発の大部分は、コンポーネントで行われます。 コンポーネントは基本的に、ブラウザに表示されるコンポーネントのlファイルとやり取りするクラスです。 前の章の1つでファイル構造を見てきました。 ファイル構造にはアプリコンポーネントがあり、次のファイルで構成されています-
- app.component.css
- app.componentl
- app.component.spec.ts
- app.component.ts
- app.module.ts
上記のファイルは、angular-cliコマンドを使用して新しいプロジェクトを作成したときにデフォルトで作成されました。
あなたが app.module.ts ファイルを開いた場合、それはインポートされたいくつかのライブラリと次のようにappcomponentに割り当てられている宣言を持っています-
宣言には、既にインポートしたAppComponent変数が含まれています。 これが親コンポーネントになります。
現在、angle-cliには、独自のコンポーネントを作成するコマンドがあります。 ただし、デフォルトで作成されるアプリコンポーネントは常に親のままであり、次に作成されるコンポーネントが子コンポーネントを形成します。
コマンドを実行してコンポーネントを作成しましょう。
コマンドラインで上記のコマンドを実行すると、次の出力が表示されます-
次に、ファイル構造を確認してみると、src/appフォルダーの下にnew-cmp新しいフォルダーが作成されます。
次のファイルがnew-cmpフォルダに作成されます-
- new-cmp.component.css-新しいコンポーネントのcssファイルが作成されます。
- new-cmp.componentl-htmlファイルが作成されます。
- new-cmp.component.spec.ts-これは単体テストに使用できます。
- new-cmp.component.ts-ここでは、モジュール、プロパティなどを定義できます。
次のように変更がapp.module.tsファイルに追加されます-
上記のnew-cmp.component.tsファイルを見ると、コンストラクターとngOnInit()というメソッドを持つOnInit.Inを実装するNewCmpComponentという新しいクラスが作成されます。 ngOnInitは、クラスが実行されるときにデフォルトで呼び出されます。
フローの仕組みを確認しましょう。 これで、デフォルトで作成されるアプリコンポーネントが親コンポーネントになります。 後で追加されたコンポーネントはすべて子コンポーネントになります。
上記は通常のhtmlファイルであり、ブラウザには何も印刷されていません。 bodyセクションのタグを見てください。
これはデフォルトでAngularによって作成されたルートタグです。 このタグには、 main.ts ファイルに参照があります。
AppModuleはメインの親モジュールのアプリからインポートされ、同じことがブートストラップモジュールにも与えられ、appmoduleがロードされます。
ここで、AppComponentは指定された名前、つまり appの参照を保存する変数です。 Component.ts と同じものがブートストラップに与えられます。 app.component.ts ファイルを見てみましょう。
角のコアがインポートされ、コンポーネントと呼ばれ、宣言子で同じものが使用されます-
セレクターへの宣言子参照では、 templateUrl および styleUrl が指定されています。 ここでのセレクタは、上記のindexlファイルに配置されたタグにすぎません。
クラスAppComponentには、ブラウザに表示されるtitleという変数があります。
HTMLコードと変数タイトルのみが中括弧で囲まれています。 app.component.ts ファイルに存在する値で置き換えられます。 これはバインディングと呼ばれます。 バインディングの概念については、後続の章で説明します。
これで、 new-cmp という新しいコンポーネントが作成されました。 新しいコンポーネントを作成するためにコマンドが実行されると、同じことが app.module.ts ファイルに含まれます。
new-cmpで作成された新しいファイルを確認しましょう。
new-cmp.component.ts
ここでは、コアもインポートする必要があります。 コンポーネントの参照は、宣言子で使用されます。
宣言子には、 app-new-cmp および templateUrl および styleUrl というセレクターがあります。
上記のように、htmlコード、つまりpタグがあります。 現在スタイルは必要ないため、スタイルファイルは空です。 しかし、プロジェクトを実行すると、新しいコンポーネントに関連するものはブラウザに表示されません。 ここで何かを追加してみましょう。これは後でブラウザで見ることができます。
セレクター、つまり app-new-cmp は次のように app.component l ファイルに追加する必要があります-
新しいコンポーネントl *ファイルと *new-cmp.component.ts ファイルを見てみましょう。
new-cmp.component.ts
クラスでは、new componentという変数を1つ追加しました。値は「 Entered in new component created 」です。
上記の変数は次のように .new-cmp.componentl ファイルにバインドされています-
- appに <app-new-cmp> </app-new-cmp> セレクターを含めたので。 親コンポーネントのlであるコンポーネントl *、新しいコンポーネントlファイル(new-cmp.componentl)に存在するコンテンツは、次のようにブラウザーに表示されます-
同様に、要件に従って、 app.componentl ファイルのセレクターを使用してコンポーネントを作成し、リンクすることができます。