2
1

Angular で コンポーネント を作ってみました。

Last updated at Posted at 2024-06-06

コンポーネント?って言葉が普通に出てきました。
私にはこれまで日常会話で使ったことのない言葉です。

コンポーネントとは部品みたいな意味のようです。
プログラムを作るときは部品を作って、プラモデルみたいに組み合わせて完成させるイメージなのかと理解しました。

では、ちょっと進んでみます。

1.環境を準備します。

過去の記事で Angular アプリケーションを動かすところまでの環境を準備しています。

・以下のリンクを参照してください。

2.コンポーネントを作成します。

2-1.コマンドプロンプトを開きます。

(アウトプット)
2-1-1.PNG

2-2.Angular アプリケーションのディレクトリに移動します。

・コマンドプロンプトで以下のコマンドを実行します。
cd .\Angular\my-work

(アウトプット)
2-1.PNG

2-3.新しい汎用コンポーネントを作成するコマンドを実行します。

・コマンドプロンプトで以下のコマンドを実行します。
ng generate component header

(アウトプット)
2-2.PNG

2-3.app ディレクトリの直下に header が追加されています。

・エクスプローラで以下のディレクトリを参照します。
C:\Users\user\Angular\my-work\src\app

(アウトプット)
2-3.PNG

2-4.header ディレクトリの直下に以下のファイルが存在します。

・エクスプローラで以下のディレクトリを参照します。
C:\Users\user\Angular\my-work\src\app\header

(アウトプット)
2-4.PNG

3.プログラムを更新します。

3-1.app.component.ts に header コンポーネントをインポートします。

・以下のファイルを更新します。
C:\Users\user\Angular\my-work\src\app\app.component.ts

import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
+ import { HeaderComponent } from './header/header.component';

@Component({
  selector: 'app-root',
  standalone: true,
-  imports: [RouterOutlet],
+  imports: [RouterOutlet, HeaderComponent],
-  templateUrl: './app.component.html',
-  styleUrl: './app.component.css'
  template: `
      <app-header></app-header>
  `
})
export class AppComponent {
-  title = 'my-work';
}
3-2.header.component.ts にテキストボックスとボタンを配置します。

・以下のファイルを更新します。
C:\Users\user\Angular\my-work\src\app\header\header.component.ts

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

@Component({
  selector: 'app-header',
  standalone: true,
  imports: [],
-  templateUrl: './header.component.html',
  styleUrl: './header.component.css'
+  template: `
+  <section>
+    <form>
+      <input type="text">
+      <button class="primary" type="button">Search</button>
+    </form>
+  </section>
+ `
})
export class HeaderComponent {

}
3-3.header.component.css を更新します。

・以下のファイルを更新します。
C:\Users\user\Angular\my-work\src\app\header\header.component.css

コンポーネント作成直後は .css ファイルは空で作成されています。

+ input[type="text"] {
+ border: solid 1px black;
+ padding: 10px;
+ border-radius: 8px;
+ margin-right: 4px;
+  display: inline-block;
+ width: 30%;
+ }
+
+ button {
+   padding: 10px;
+   border: solid 1px black;
+   background: darkglay;
+   color: black;
+   border-radius: 8px;
+ }

(アウトプット)
3-3.PNG

.css ファイルを更新しても何も変わらず、頭を悩ませました。
アプリケーションを再起動することで反映されました。

無事解決し、思ったとおりになりました。

2
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1