Skip to Content
ドキュメントWebコースReactの基本コンポーネントを作ってみよう

コンポーネントを作ってみよう

このページで学ぶこと

  • Reactコンポーネントとは何かがわかる
  • 自分でコンポーネントを作れる
  • JSXの基本的な書き方がわかる

コンポーネントとは

コンポーネントは UIの部品 です。
React では「ページ全体」を、小さな部品(コンポーネント)を組み合わせて作ります。

ページ
├── <Header />
│   ├── <Logo />
│   └── <Nav />
├── <Main />
│   ├── <Card />
│   ├── <Card />
│   └── <Card />
└── <Footer />
plaintext

それぞれのコンポーネントは独立したJavaScriptの関数として定義します。


やってみよう

ステップ1: 最初のコンポーネントを作る

app/page.js を開いて、以下のように書き換えてみましょう。

// app/page.js
 
// ① コンポーネントの定義(関数)
function Hello() {
  return <p>こんにちは!</p>
}
 
// ② ページ本体(コンポーネントを使う)
export default function Home() {
  return (
    <main>
      <h1>とんペディアへようこそ</h1>
      <Hello />  {/* ③ コンポーネントを呼び出す */}
      <Hello />  {/* 何度でも使える */}
    </main>
  )
}
javascript

ブラウザで確認すると「こんにちは!」が2回表示されるはずです。

ポイント

  • コンポーネント名は必ず大文字で始めるHelloMyCard など)
  • return の中にJSXを書く
  • <Hello /> と書くと、そこにコンポーネントが展開される

ステップ2: コンポーネントをファイルに分ける

実際の開発ではコンポーネントを別ファイルに分けます。
components/ フォルダを作り、Card.js というファイルを作成しましょう。

// components/Card.js
 
export default function Card() {
  return (
    <div style={{ border: '1px solid #ccc', padding: '16px', borderRadius: '8px' }}>
      <h2>カードタイトル</h2>
      <p>カードの内容です。</p>
    </div>
  )
}
javascript

次に app/page.js から Card コンポーネントを使います。

// app/page.js
import Card from '../components/Card'  // ← importで読み込む
 
export default function Home() {
  return (
    <main>
      <h1>とんペディアへようこそ</h1>
      <Card />
      <Card />
    </main>
  )
}
javascript

ステップ3: JSXの書き方を押さえる

JSXはHTMLに似ていますが、いくつか違いがあります。

function MyComponent() {
  const name = '太郎'
  const isLoggedIn = true
 
  return (
    <div>
      {/* コメントはこう書く */}
 
      {/* ① 変数は {} で埋め込む */}
      <p>こんにちは、{name}さん</p>
 
      {/* ② class ではなく className を使う */}
      <p className="text-red">赤いテキスト</p>
 
      {/* ③ 条件によって表示を切り替える */}
      {isLoggedIn && <p>ログイン中です</p>}
 
      {/* ④ 複数の要素を返すときは1つの要素で囲む */}
    </div>
  )
}
javascript

class ではなく className
HTMLでは class="..." と書きますが、JSXでは className="..." と書きます。
class はJavaScriptの予約語なので、JSXでは別名が使われています。


ステップ4: リストを表示する

配列のデータをリスト表示する方法を覚えましょう。
map() を使うのが基本パターンです。

function FruitList() {
  const fruits = ['りんご', 'バナナ', 'みかん']
 
  return (
    <ul>
      {fruits.map((fruit, index) => (
        // ⚠️ key は必ず指定する(Reactの内部処理で必要)
        <li key={index}>{fruit}</li>
      ))}
    </ul>
  )
}
javascript

key って何?
Reactはリストの要素を効率よく更新するために、各要素を識別する key が必要です。
key はリスト内で一意(ユニーク)な値を使いましょう。
実際のアプリではDBのIDを使うことが多いです。


確認しよう

  • 自分でコンポーネントを定義して呼び出せた
  • コンポーネントをファイルに分けて import できた
  • JSXの中で変数を {} で表示できた
  • map() でリストを表示できた

AIに聞いてみよう

「Reactのコンポーネントを作るとき、関数コンポーネントとクラスコンポーネントの違いは何ですか?」


次のステップ

stateとpropsを理解する

Last updated on