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