この記事で扱うこと
React(リアクト)は、画面を部品に分けて作る仕組みです。
この記事では、Reactで画面を部品に分けるとはどういうことかを確認したあと、部品の書き方、部品に値を渡すprops、部品が覚えておくstateを順に見ていきます。
Reactは、自分のパソコンに何もインストールせずに試せます。React公式サイトのクイックスタートのページは、ページの中のコードをその場で書き換えて動かせるので、読みながら試す場所として使えます。
画面を部品に分ける
Reactでは、画面をコンポーネント(見出し・カード・ボタンのような部品)に分けて作ります。

同じ形の部品は1回だけ作り、中身を変えて何度も使えます。メンバーが10人になっても、カードの部品を10回呼ぶだけで済みます。
コンポーネントの書き方
コンポーネントは、HTMLに似たもの(JSX)を返す関数です。
function MemberCard() {
return (
<div className="card">
<h2>たろう</h2>
<p>1年生</p>
</div>
);
}
export default function MemberList() {
return (
<section>
<MemberCard />
<MemberCard />
</section>
);
}
| 決まり | 意味 |
|---|---|
| 名前は大文字で始める | MemberCard のように書く。小文字だと HTML のタグとして扱われる |
<MemberCard /> |
作った部品を使う書き方 |
className |
HTML の class の代わりに書く(class は JavaScript で別の意味があるため) |
return ( ... ) の中は1つにまとめる |
全体を <div> や <section> で囲む |
export default |
この部品を、ほかのファイルから使えるようにする |
このままでは、2枚のカードがどちらも「たろう」になります。カードごとに違う名前を出すには、次のpropsを使います。
propsで値を渡す
props(プロップス)は、部品の外から渡す値です。{ } で囲むと、JSXの中にJavaScriptの値を入れられます。
function MemberCard({ name, grade }: { name: string; grade: number }) {
return (
<div className="card">
<h2>{name}</h2>
<p>{grade}年生</p>
</div>
);
}
// 使う側
<MemberCard name="たろう" grade={1} />
<MemberCard name="はなこ" grade={2} />
{ name: string; grade: number } の部分は、TypeScriptの型です。name には文字、grade には数を渡す、という約束を書いています。TypeScriptの読み方は、Noemaの「AI駆動開発で困らないためのTypeScript」にまとめています。
stateで画面を変える
state(ステート)は、部品が覚えておく値です。stateが変わると、Reactがその部品を描き直します。
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
{count} 回押されました
</button>
);
}
| 部分 | 意味 |
|---|---|
useState(0) |
最初の値が 0 の state を作る |
count |
今の値 |
setCount(...) |
値を変える関数。これを通して変えると画面も変わる |
onClick={...} |
押されたときの処理。素の JavaScript の addEventListener と同じ役割 |
count = count + 1 のように直接書き換えても、画面は変わりません。値を変えるときは setCount を使います。
まとめ
Reactでは、画面をコンポーネントという部品に分けて作ります。コンポーネントはJSXを返す関数で、名前は大文字で始めます。外から値を渡すときはprops、部品の中で値を覚えておくときはstateを使います。stateは useState で作り、値を変えるときは setCount のような専用の関数を通します。そうすると、Reactが部品を描き直して画面が変わります。
参考にした資料
- React「クイックスタート」は、Reactの書き方を短い例で順に説明している公式のページです。「コンポーネントの作成とネスト」から「フックの使用」までが、この記事の範囲にあたります
- React「チュートリアル:三目並べ」は、ブラウザの中でゲームを作りながらpropsとstateを使う公式のチュートリアルです。「チュートリアルのセットアップ」と「概要」の2節で1時間ほどです
- Progate「React」は、ブラウザの中で書きながら進められる学習サイトです。最初のレッスンは無料会員の範囲で1時間ほどです
- Next.js Learn「React Foundations」は、Reactがなぜ生まれたかを、素のJavaScriptと比べながら説明する英語の学習コースです
- Noema「AI駆動開発で困らないためのTypeScript」は、propsの例に出てきた型の書き方を扱っています