React — コンポーネントと宣言的UIの定番

📖 このページのゴール:React(リアクト) が「素のJS」と何が違うのかを、たとえと小さなコードで腹落ちする。キーワードは 宣言的(せんげんてき)=「UIの更新を自分で書かない」。 ← 目次・はじめにへもどる


🪄 たとえ:状態を書けば、姿が決まる

前のページの「素のJS」は、🤖 手で人形を動かすやり方でした。「数字が変わったら、表示も書き換えろ」と毎回 手順 を指示します。

React は 🪄 「今はこういう状態」と書くと、その姿に勝手になるやり方です。「今のカウントは 5」と書けば、画面はちゃんと 5 を映してくれる。“どう書き換えるか”の手順は、Reactが裏で面倒を見てくれる——これが「宣言的(せんげんてき)」です。

🟢 ざっくり:素のJS=「やり方(手順)を書く」/ React=「ありたい姿(状態)を書く」。


🧩 しくみ:4つの言葉だけ

React は次の4つさえ押さえればOKです。

ことば よみ・言い換え これは何?
コンポーネント UIの部品 ボタン・カードなど、画面を再利用できる部品に分ける単位。部品を組み合わせて画面を作る
JSX ジェイエスエックス JSの中に、HTMLっぽく画面を書ける書き方。<button>…</button> をそのまま書ける
状態(state) ステート=今の状態 カウントの数や入力中の文字など、変化する値。これを変えると UIが自動で更新される(宣言的・リアクティブ)
仮想DOM かそうDOM 変更をまずメモリ上で計算し、本物の画面には“変わった所だけ”を反映して速くするしくみ

ポイントは 状態(state)と画面が結びついていること。状態を変えれば画面が追いかける(リアクティブ)。だから「画面のどこをどう書き換えるか」を自分で書かなくてよくなります。


🔧 小さなコード例:おなじみのカウンター

前のページ(素のJS)と同じカウンターを、Reactの useState(ユーズステート) で書くとこうなります。

function Counter() {
  const [count, setCount] = useState(0);   // ① 状態:今のカウント
  return (
    <button onClick={() => setCount(count + 1)}>
      クリック回数:{count}                  {/* ② 状態を画面に埋め込む */}
    </button>
  );
}

3行ずつ読むと——

  • useState(0):カウントの 状態 を作る(初期値 0)。count=今の値、setCount=値を変える関数。
  • {count}:画面の中に 状態をそのまま埋め込む
  • ボタンを押すと setCount状態を 1 増やすだけ

素のJSとの違いがここ👇

素のJSなら「ボタンを押す → 数を増やす → その数で表示テキストを書き換える」と、最後の“画面更新”まで自分で書きました。 Reactは setCount で状態を変えるだけ{count} の表示は Reactが自動で更新してくれる。「クリックされたら画面を描き直す」を自分で書かない——これが宣言的UIの体感です。


👍 向いている / 👎 向かない・注意

   
👍 向いている 複雑なUI(状態がたくさん絡む画面)/大規模開発・チーム開発/巨大なエコシステム(部品やツールが何でも揃う)/求人が最も多い(仕事・情報・仲間が見つけやすい)
👎 向かない・注意 学習はやや急(state・JSX・お作法を覚える)/設定や選択肢が多い(ルーティングやデータ取得は別ライブラリで“自分で選ぶ”)/小物には大げさ(ボタン1個の小さな動きなら素のJSで十分)

🌱 鉄則:まず素のHTML/JSで動かし、複雑になってきたらReact。最初から全部盛りにしない。


🧰 エコシステムとメタフレームワーク

Reactは「画面の部品を作る」のが本業。そのまわりに強力な仲間がいます。

  • Next.js(ネクストジェイエス):Reactの メタフレームワーク(=全部入りの土台)。サーバー側でも描画でき、react の一部をバックエンドで動かすこともできます。詳しくは 第9章 で。
  • React Native(リアクトネイティブ):同じReact流の書き方で スマホアプリ(iOS/Android) も作れる。

🔧 「Reactを覚えると、Webだけでなくモバイルや“サーバーで動くReact”まで地続きで広がる」——これが巨大エコシステムの強みです。


🏢 誰が使う?

スタートアップから大企業まで、いまの主力。新規SaaS・管理画面・公開Webアプリと、はば広く使われます。開発元は Meta(旧Facebook)。世界で最も使われ、求人・教材・サンプルがいちばん豊富なので、「最初の本格フレームワーク」として選びやすいのが大きな魅力です。


🟢 ひとことで言うと

Reactは 状態(state)を書けばUIが追いかける「宣言的UI」の定番。画面の更新を自分で書かないのが素のJSとの最大の違いです。学習はやや急で選択肢も多いけれど、複雑なUI・大規模・求人の多さでは頭ひとつ抜けています。Meta製で、Next.js(サーバーでも動く)やReact Nativeへと世界が広がります。

➡️ 次へ

次のページ:Vue — 学びやすい宣言的フレームワーク → ← 目次・はじめにへもどる