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

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

条件付きレンダリングとは?Reactでの基本的な書き方
条件付きレンダリングとは?Reactでの基本的な書き方

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

生徒

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

先生

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

生徒

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

先生

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

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

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

Reactで条件付きレンダリングを行うということは、画面に表示する内容を「状態」や「条件」によって切り替えるという意味になります。 普通の文章を読むときに「もし〜なら〜する」という表現がありますが、それを画面表示にも使えるのが条件分岐です。 プログラミングをまったく触ったことがない初心者でも、日常の判断と同じ考え方なので理解しやすい特徴があります。

Reactの条件付きレンダリングの代表的な書き方としては、次の四つがあります。

  • if文を使う
  • 三項演算子(さんこうえんざんし)を使う
  • 論理AND(&&)演算子を使う
  • 条件ごとにコンポーネントを切り替える

「三項演算子」という言葉は難しく聞こえますが、これは短い条件分岐を一行で書ける便利な書き方です。 また「論理AND(&&)」は「条件が真(true)なら後ろを実行する」という仕組みで、何かを表示したいときにとても使いやすい方法です。

2. if文を使ったReactの条件付きレンダリング

2. if文を使ったReactの条件付きレンダリング
2. if文を使ったReactの条件付きレンダリング

もっとも基本的で初心者にも理解しやすいのがif文を使う方法です。 「もし◯◯なら、△△を表示する」という考え方をそのままコードにできます。


import React from "react";

function App() {
  const isLogin = true;

  if (isLogin) {
    return <h1>ログイン済みのユーザーです</h1>;
  }

  return <h1>ログインしていません</h1>;
}

export default App;
(画面には「ログイン済みのユーザーです」と表示されます)

このように、条件の結果によってreturnを切り替えるだけで簡単に表示内容を変えることができます。 初めてReactを書く人でも理解しやすいシンプルな書き方です。

3. 三項演算子を使う条件付きレンダリング

3. 三項演算子を使う条件付きレンダリング
3. 三項演算子を使う条件付きレンダリング

三項演算子は短い条件分岐に向いている書き方です。 「条件 ? 真のとき : 偽のとき」という形で、文章のように読めるのが特徴です。


import React from "react";

function App() {
  const score = 80;

  return (
    <div>
      {score >= 60 ? <p>合格です!</p> : <p>残念、不合格です…</p>}
    </div>
  );
}

export default App;
(画面には「合格です!」と表示されます)

結果を左右どちらか一つに分けたいときにとても便利で、Reactの実務でも多く使われる書き方です。

4. &&(論理AND)を使う条件付きレンダリング

4. &&(論理AND)を使う条件付きレンダリング
4. &&(論理AND)を使う条件付きレンダリング

「条件が真のときだけ表示したい」場合には&&を使うとシンプルに書けます。 これは「もし条件が成り立つなら、この要素を表示する」という意味になります。


import React from "react";

function App() {
  const isAdmin = true;

  return (
    <div>
      <h1>ユーザーページ</h1>
      {isAdmin && <p>管理者向けの特別メニュー</p>}
    </div>
  );
}

export default App;
(管理者であれば「管理者向けの特別メニュー」が表示されます)

条件がfalseの場合は右側が実行されないため、短い条件表示に最適な方法です。

5. 条件によってコンポーネントを切り替える方法

5. 条件によってコンポーネントを切り替える方法
5. 条件によってコンポーネントを切り替える方法

Reactでは小さな部品を組み合わせて画面を作ります。 そのため、条件によってまるごと別のコンポーネントを表示することもできます。 状態が複雑な画面では、この方法がもっとも見通しの良い書き方になります。


import React from "react";

function Login() {
  return <h2>ログインページです</h2>;
}

function Dashboard() {
  return <h2>ダッシュボードへようこそ</h2>;
}

function App() {
  const isLogin = false;

  return (
    <div>
      {isLogin ? <Dashboard /> : <Login />}
    </div>
  );
}

export default App;
(ログインしていない場合はログインページが表示されます)

コンポーネントを条件で切り替えることで、画面全体の構成を自然に分けられ、読みやすく維持もしやすくなります。

まとめ

まとめ
まとめ

今回の記事では、Reactにおける条件分岐の基本から応用までを詳しく解説してきました。React開発において、特定の状態(State)や条件に基づいて画面の表示内容を動的に変更する「条件付きレンダリング」は、アプリケーションのユーザー体験を向上させるために欠かせない技術です。

私たちは、if文、三項演算子、論理AND(&&)演算子、そしてコンポーネントの切り替えという4つの主要な手法を学びました。これらは一見するとどれを使っても同じ結果が得られるように思えますが、実際には「読みやすさ」や「保守性」という観点で使い分けが重要になります。

各手法の振り返りと最適な使い分け

まず、if文はJavaScriptの基本であり、ロジックが複雑な場合に最適です。JSXの外部で計算や判定を行い、その結果を変数に格納して表示に利用するスタイルは、コードの意図が明確になります。

次に、三項演算子です。これはJSX(HTMLのような見た目の部分)の中で直接「Aならこれ、Bならこれ」と2パターンを切り替えたいときに非常に重宝します。非常に簡潔に書けるため、React開発者が最も多用するテクニックの一つと言えるでしょう。

そして、論理AND(&&)演算子。これは「特定の条件を満たすときだけ表示し、そうでないときは何も出さない」というシンプルなケースに最強の威力を発揮します。不要な「else」の部分を書かなくて済むため、ソースコードがすっきりと整理されます。

最後に、コンポーネントの切り替えです。大規模なアプリケーションでは、一つのファイルに全ての表示ロジックを詰め込むと読みづらくなります。役割ごとにコンポーネントを分割し、条件によって呼び出す部品を切り替えることで、プログラムの再利用性が高まり、修正も容易になります。

さらに一歩進んだ実践的なReactコード例

学んだことを踏まえて、もう少し実践的な「カウントアップ機能と警告表示」を組み合わせたサンプルプログラムを見てみましょう。ここでは、数値の状態に応じてメッセージを出し分け、かつ特定の数値を超えたときだけ警告用のコンポーネントを表示させる処理を実装しています。


import React, { useState } from "react";

// 警告を表示するための小さな部品(コンポーネント)
const WarningMessage = () => {
  return (
    <div style={{ color: 'red', fontWeight: 'bold' }}>
      数値が10を超えました!注意してください。
    </div>
  );
};

function App() {
  const [count, setCount] = useState(0);

  // カウントを増やす関数
  const handleIncrement = () => {
    setCount(count + 1);
  };

  // カウントをリセットする関数
  const handleReset = () => {
    setCount(0);
  };

  return (
    <div className="container mt-5">
      <h1>カウンターと条件分岐の実践</h1>
      <p>現在のカウント: <strong>{count}</strong></p>

      {/* 三項演算子で表示するテキストを切り替える */}
      <p>
        状態: {count === 0 ? "開始していません" : "計測中..."}
      </p>

      {/* 論理AND(&&)で10以上の時だけ警告コンポーネントを表示 */}
      {count > 10 && <WarningMessage />}

      <div className="mt-3">
        <button className="btn btn-primary me-2" onClick={handleIncrement}>
          カウントアップ
        </button>
        
        {/* countが0より大きい時だけリセットボタンを表示 */}
        {count > 0 && (
          <button className="btn btn-secondary" onClick={handleReset}>
            リセット
          </button>
        )}
      </div>
    </div>
  );
}

export default App;
(ボタンを押すと数字が増え、1以上になると「計測中...」と「リセットボタン」が表示されます。さらに10を超えると赤い警告メッセージが出現します)

このコードでは、これまで学んだテクニックが凝縮されています。count > 10 && <WarningMessage /> の部分は、エラー表示や通知バナーの実装にそのまま応用できるパターンです。また、リセットボタンの表示・非表示を切り替えることで、ユーザーが操作できない無意味なボタンを隠し、UIをクリーンに保つことができます。

学習のポイントと今後のステップ

Reactを習得するコツは、一度に完璧を目指さないことです。まずは三項演算子を使ってみて、コードが読みづらいなと感じたらif文に戻したり、共通化できそうならコンポーネント化したりと、試行錯誤を繰り返すことが上達への近道です。

また、最新のフロントエンド開発では、今回紹介した方法に加えて「配列のmap処理の中での条件分岐」や「Switch文的な処理を行うためのオブジェクトマッピング」といった手法もよく使われます。基礎を固めた後は、ぜひそういった応用テクニックにも挑戦してみてください。条件分岐をマスターすれば、Reactで作成できるWebアプリケーションの幅は一気に広がります。

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

生徒

先生、ありがとうございました!Reactでの条件分岐、思ったよりもバリエーションがあって驚きました。最初はどれを使えばいいか迷いそうですが、使い分けの基準が分かるとスッキリしますね。

先生

そうですね。最初は基本のif文から始めても全然大丈夫ですよ。慣れてくると「ここは三項演算子の方がコードが短くなって綺麗だな」とか、「&&を使えばシンプルに書けるな」と自然に選べるようになります。

生徒

今回のサンプルコードを見て、&&演算子がすごく便利だと思いました。特定の条件のときだけボタンを出すとか、エラーメッセージを出すのに最適ですね!

先生

その通りです!実務でも、入力フォームのバリデーションメッセージを出すときによく使われます。ただ一つ注意点があって、数値の「0」を条件にすると、JavaScriptの仕様で「0」が画面に表示されてしまうことがあるんです。なので、基本的には真偽値(boolean)で判定するのが安全ですよ。

生徒

なるほど、0が表示されちゃう罠があるんですね。気をつけます。あと、コンポーネントを切り替える方法も、コードが整理されて見やすくなるのが良いなと思いました。

先生

いいところに気づきましたね。画面が大きくなってくると、一つのファイルに全部書くと何百行にもなってしまいます。条件ごとに部品を分けることで、後から修正するのがとても楽になります。これがReactらしい開発のスタイルと言えますね。

生徒

「Reactらしい書き方」ができるようになるとかっこいいですね!今日学んだ4つの方法を、自分のプロジェクトでも実際に試してみたいと思います。

先生

素晴らしい意気込みですね!習うより慣れろです。まずは簡単な「ログイン・ログアウトボタンの切り替え」なんかを作ってみると良い練習になりますよ。頑張ってくださいね!

カテゴリの一覧へ
新着記事
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
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.7
Java&Spring記事人気No7
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
React
Fetch APIでPOSTリクエストを送る方法を完全解説!初心者でもわかるReactのデータ送信