カテゴリ: React 更新日: 2026/02/11

Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐

三項演算子を使ったシンプルな条件分岐の書き方
三項演算子を使ったシンプルな条件分岐の書き方

先生と生徒の会話形式で理解しよう

生徒

「Reactで条件分岐ってできますか?」

先生

「Reactの条件分岐は、いくつかの方法があります。」

生徒

「具体的にはどのように使うんですか?」

先生

「それでは、具体的にプログラムの書き方を見ていきましょう!」

1. Reactで条件分岐するには?

1. Reactで条件分岐するには?
1. Reactで条件分岐するには?

Reactでは、ある条件によって表示する内容を切り替える「条件付きレンダリング」がとても重要になります。日常生活でも、天気が晴れなら洗濯物を外に干すけれど、雨なら部屋の中に干すという判断があります。Reactでも同じように、状態によって表示を切り替えます。条件分岐にはいくつか方法がありますが、その中でも特に使われるのが「三項演算子」と呼ばれる書き方です。三項演算子は、短く読みやすい記述で分岐が書けるため、初心者でも扱いやすく人気があります。

2. 三項演算子とは?

2. 三項演算子とは?
2. 三項演算子とは?

三項演算子とは、「条件 ? 真の場合 : 偽の場合」という形で使う簡潔な分岐の書き方です。文章で説明すると難しそうですが、実際にはとてもシンプルで、日常の「もし〜なら〜、そうでなければ〜」という考え方をそのままコードで表現します。例えば、温度が二十五度より高いときは「暑い」と表示し、そうでなければ「快適」と表示させるようなイメージです。長い条件分岐を書く必要がないので、Reactのコンポーネント内のコードをきれいに保つことにも役立ちます。

3. Reactで三項演算子を使った条件分岐を書く

3. Reactで三項演算子を使った条件分岐を書く
3. Reactで三項演算子を使った条件分岐を書く

ここでは、ボタンを押したときに「ログインしているかどうか」で表示を切り替える例を紹介します。三項演算子の基本的な使い方が理解できれば、もっと複雑な場面でも応用できます。まずはシンプルなパターンで書いてみましょう。状態を管理するためにuseStateという仕組みを使いますが、これは値を保存して画面に反映させるための機能です。難しく感じるかもしれませんが、使っているうちに自然と理解が深まります。


import React, { useState } from "react";

function App() {
  const [isLogin, setIsLogin] = useState(false);

  return (
    <div>
      <h1>{isLogin ? "ログイン中です" : "ログアウト中です"}</h1>

      <button onClick={() => setIsLogin(!isLogin)}>
        状態を切り替える
      </button>
    </div>
  );
}

export default App;
(画面に「ログアウト中です」と表示され、ボタンを押すと「ログイン中です」に切り替わります)

4. 三項演算子の読み方をイメージで理解する

4. 三項演算子の読み方をイメージで理解する
4. 三項演算子の読み方をイメージで理解する

三項演算子の便利さを理解するには、日常生活の判断に置き換えるとわかりやすくなります。例えば、夕飯を外食にするか家で食べるかを決める場面を想像してみましょう。「料理する気力があるなら家で食べる、疲れているなら外食する」というような判断です。Reactのコードでも同じ理屈で、「状態が真ならこの表示、偽なら別の表示」と素直に考えれば問題ありません。長文のif文を使わずに短く書けるため、コンポーネントが読みやすくなるという利点があります。

5. 三項演算子を使うときの注意点

5. 三項演算子を使うときの注意点
5. 三項演算子を使うときの注意点

三項演算子は便利ですが、複雑な条件を詰め込みすぎると逆に読みづらくなってしまうことがあります。特に初心者の場合は、一つの条件だけをシンプルに書くところから始めましょう。もし分岐が三つ以上に増えるようであれば、無理に三項演算子に詰め込まず、if文を使うほうが適しています。また、状態の名前をわかりやすくつけることも大切です。名前がわかりにくいと、何を条件にしているのかが分かりづらくなり、ミスにつながりやすくなります。

6. よく使うパターンの応用例

6. よく使うパターンの応用例
6. よく使うパターンの応用例

Reactの実務では、「読み込み中ならローディング表示」「データがあるなら一覧を表示」「データが空ならメッセージを表示」というケースがよくあります。こうした場面でも三項演算子は役に立ちます。例えば、読み込み中かどうかを判定してメッセージを切り替えるだけでも、ユーザーにとって親切な画面になります。読んでいる人が迷わないように、必要最小限の分岐を的確に書くことがポイントになります。


function LoadingExample() {
  const [loading, setLoading] = useState(true);

  return (
    <div>
      {loading ? "読み込み中です..." : "データが表示されました!"}
    </div>
  );
}
(最初に「読み込み中です...」と表示され、loadingがfalseになると内容が切り替わります)

まとめ

まとめ
まとめ

Reactにおける条件分岐、特に「条件付きレンダリング」の基本について詳しく解説してきました。React開発において、ユーザーの操作やデータの状態に合わせて画面表示を動的に切り替えるスキルは必須と言えます。今回学んだ「三項演算子」は、その中でも最も頻繁に使われるテクニックの一つです。

これまでの内容を振り返ると、Reactで条件分岐を行う際には、単にJavaScriptの構文を使うだけでなく、Reactの「状態(State)」と組み合わせて考えることが重要であることがわかりました。useStateを使って管理している値が変化すると、Reactが自動的に画面を再描画してくれるため、私たちは「どのような条件の時に何を表示するか」というロジックに集中するだけで、動的なUIを構築することができます。

React条件分岐のポイント整理

Reactのコーディングをより効率的に、そして読みやすくするためのポイントを以下にまとめました。

  • 三項演算子の活用: 条件 ? 真の時の表示 : 偽の時の表示 という形式は、JSX(HTMLのような記述部分)の中で直接使えるため、非常に強力です。
  • 論理演算子(&&)の併用: 「もし~なら表示し、そうでなければ何も表示しない」という場合には、三項演算子よりも 条件 && 表示内容 という書き方の方がシンプルになる場合があります。
  • 可読性の維持: 条件が複雑になりすぎる場合は、JSXの外で変数に代入したり、別のコンポーネントに切り出したりすることで、コードのメンテナンス性が向上します。
  • ユーザー体験(UX)の向上: 読み込み中(Loading)やエラー時の表示を条件分岐で出し分けることで、ユーザーがストレスを感じない親切なアプリケーションになります。

実践的なサンプルコード:複数の条件を扱う

これまでは二択の切り替えを見てきましたが、もう少し実践的な「複数の状態」を管理する例を見てみましょう。例えば、フォームの送信状態を「入力中」「送信中」「完了」の3段階で切り替えるようなケースです。このような場合は、三項演算子を入れ子にするよりも、一度変数に表示内容を格納する方法がスッキリします。


import React, { useState } from "react";

function StatusMessage() {
  const [status, setStatus] = useState("typing"); // "typing", "sending", "success"

  // 条件によって表示する内容を変数に代入する
  let content;
  if (status === "typing") {
    content = <p>メッセージを入力してください...</p>;
  } else if (status === "sending") {
    content = <p>現在送信中です。少々お待ちください。</p>;
  } else if (status === "success") {
    content = <p>無事に送信が完了しました!ありがとうございます。</p>;
  }

  return (
    <div className="p-4 border rounded">
      <h3>ステータス確認</h3>
      {content}
      
      <div className="mt-3">
        <button className="btn btn-primary me-2" onClick={() => setStatus("typing")}>入力中</button>
        <button className="btn btn-warning me-2" onClick={() => setStatus("sending")}>送信中</button>
        <button className="btn btn-success" onClick={() => setStatus("success")}>完了</button>
      </div>
    </div>
  );
}

export default StatusMessage;
(ボタンをクリックすることで、status変数の値が変わり、画面に表示されるメッセージが「入力中」「送信中」「完了」のそれぞれの内容に切り替わります)

これからの学習ステップ

条件分岐をマスターしたら、次は「配列の展開(map関数)」に挑戦してみるのがおすすめです。条件分岐が「表示の切り替え」なら、map関数は「リストの表示」を担います。この二つを組み合わせることで、例えば「データがあるときはリストを表示し、データが空のときは『データがありません』という警告を出す」といった、実務でよくある画面を簡単に作れるようになります。

Reactの世界は非常に奥が深いですが、基礎となる条件分岐をしっかり押さえておけば、どんな複雑なUIもその積み重ねで作ることができます。まずは小さな部品から、今回学んだ三項演算子を使って、自分の手で動かしてみることが上達への近道です。プログラムは書けば書くほど自分の身になりますので、ぜひ色々なパターンを試してみてくださいね。

先生と生徒の振り返り会話

先生

「さて、ここまでReactの条件分岐について見てきましたが、三項演算子の使い方はイメージできましたか?」

生徒

「はい!『条件 ? ○○ : □□』という書き方は、最初は少し戸惑いましたが、慣れるとif文よりもスッキリ書けて便利ですね。JSXの中に直接書けるのが驚きでした。」

先生

「その通りです。ReactではHTMLの中にJavaScriptの論理を混ぜ込んで書くのが特徴ですからね。ただ、三項演算子の中でさらに三項演算子を使うような『入れ子』は、コードが読みづらくなる原因になるので注意が必要ですよ。」

生徒

「確かに、さっきのサンプルコードみたいに、条件が多いときはif文を使って変数に代入した方が、後から見た時に何をしているか分かりやすいですね。使い分けが大事なんだと学びました。」

先生

「素晴らしい気づきですね。あとは、状態(useState)を更新した瞬間に、Reactが自動で条件を再判定して画面を書き換えてくれるという感覚を忘れないでください。これがモダンなフロントエンド開発の醍醐味です。」

生徒

「なるほど。自分でDOMを直接操作しなくても、状態を変えるだけで表示が切り替わるから、ロジックに集中できるんですね。次は、読み込み中のグルグル(ローディング演出)を自分で実装してみようと思います!」

先生

「いいですね、その調子です。ローディングの条件分岐ができるようになれば、一気にアプリの完成度が高まりますよ。頑張りましょう!」

カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介