プログラミングの用語一覧へ
このページの目次

条件付きレンダリングとは?

最終更新:2026/08/18

3秒でわかる

条件によって画面に出す要素を切り替える書き方。ログイン状態や読み込み中かどうかで UI を出し分けるときに必ず使います。

もう少し詳しく

どういうものか

条件付きレンダリングは、状態に応じて描画する要素を変える書き方です。React などの JSX では文の途中に if を書けないため、&& 演算子三項演算子、事前に変数へ代入する方法、早期 return の 4 通りが使われます。どれを選んでも動作は同じで、読みやすさの問題です。

なぜ必要か

画面は 1 種類ではありません。データ取得中はスピナー、失敗したらエラー文、成功したら一覧、0 件なら空状態と、同じ場所に 4 つの見た目が入れ替わります。これを CSSdisplaynone にして全部描いたまま隠す方式にすると、存在しないデータへのアクセスでエラーが出たり、隠れた入力欄がフォーム送信に混ざったりします。そもそも描かない方が安全です。

具体例

function UserPanel({ loading, error, users }) { if (loading) return <Spinner />; if (error) return <p>読み込みに失敗しました</p>; return ( <div> {users.length > 0 ? ( <ul>{users.map((u) => <li key={u.id}>{u.name}</li>)}</ul> ) : ( <p>ユーザーがいません</p> )} {users.length > 0 && <p>{users.length}</p>} </div> ); }

つまずきやすいところ

  • {users.length && } と書くと、0 件のときに数字の 0 が画面に出る。&& は左辺をそのまま返すため。length > 0 && と比較にする

  • 空文字も同様に falsy なので、{name &&

    {name}

    }
    は問題無いが {count && ...} は危ない

  • 三項演算子を入れ子にすると読めなくなる。3 段以上になったら早期 return に切り替える

  • 条件でコンポーネントを切り替えると内部状態が破棄される。入力途中の値が消える原因になる
  • 似た用語との違い

    条件付きレンダリングは「描くかどうか」を決めます。CSS の visibilitydisplay は「描いたものを見せるかどうか」です。DOM に残るかどうかが決定的な差で、アニメーションを付けたい場合は後者が必要になることもあります。

    覚え方

    出し分けたい種類が 2 つなら三項演算子、片方が「何も出さない」なら &&、3 つ以上なら早期 return と決めておくと迷いません。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地条件付きレンダリングプログラミング

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    この用語を扱うコース

    コース

    React入門:JSX・コンポーネント・props

    22レッスン
    コース

    React道場 ハレノヒ珈琲をモダン化する10問

    10レッスン
    コース

    Next.js入門:App Routerとレイアウト

    21レッスン
    Reactコースの全編を見る