Angularでの子コンポーネント
チュートリアルの最初で触れたように、 Angularではプロジェクト全体がコンポーネントに 分割されます。前のレッスンでは、デフォルトで 作成されたメインコンポーネントのみを扱いました。 では、子コンポーネントを作成する方法を 学びましょう。
新しいコンポーネントのコードは、Angularによって
ターミナルの特別なコマンド:generate component
を使用して自動生成されます。
componentという単語の後に、
新しいコンポーネントの名前を書きます。
userコンポーネントを生成したいとしましょう:
ng generate component user
コマンドを実行した後、新しいフォルダ
app/userが作成されていることがわかります。
その中にはコンポーネントのすべての標準ファイルが
配置されます。
コンポーネントファイルuser.component.tsには、
コンポーネントのデコレータが自動的に作成されます:
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
また、このファイルにはコンポーネントクラスも 自動的に作成されます:
export class UserComponent {
}
次に、この子コンポーネントを親コンポーネントに
接続する必要があります。親コンポーネントとして、
フレームワークインストール時にデフォルトで存在する
コンポーネントappがあるとします。
この中にコンポーネントをインポートしましょう:
import { UserComponent } from './user/user.component';
コンポーネントデコレータのキーimportsに、
インポートしたコンポーネントを指定します:
@Component({
selector: 'app-root',
imports: [UserComponent], // ここ
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
これで、親コンポーネント内で子コンポーネントの
内容を出力できるようになりました。これを行うには、
親のテンプレートファイルに、子コンポーネントの
デコレータ@Componentのプロパティselector
で指定された名前の特別なタグを書きます。
このケースでは、タグapp-userです。
これを親のテンプレートに書きましょう:
some text
<app-user></app-user>
ProductComponentコンポーネントを
生成してください。
このコンポーネントを、プロジェクトの
メインコンポーネントに接続してください。
子コンポーネントのテンプレートに 変更を加えてください。 ブラウザで変更が適用されることを 確認してください。
子コンポーネントのCSSスタイルを 変更してください。 ブラウザでスタイルが適用されることを 確認してください。
子コンポーネントにnameと
priceのプロパティを作成してください。
これらの値を子コンポーネントのテンプレートに
出力してください。