Reactの「レンダリング」とは何か?

記事
IT・テクノロジー
Reactを学んでいると、必ず出てくる言葉が**「レンダリング」**です。
でも、

何をもって「レンダリングされた」と言うのか

いつレンダリングが起きているのか

ここが曖昧なまま進んでしまう人も多いです。

この記事では、Reactにおけるレンダリングの意味を、できるだけ噛み砕いて解説します。

一言で言うと、Reactのレンダリングとは?
「画面に表示する内容を決め直す処理」
これがReactのレンダリングです。

Reactは
「今の状態(state)に応じて、画面はこうあるべき」
という判断を毎回行い、その結果を画面に反映します。

この「判断して画面を作り直す」一連の流れを、Reactではレンダリングと呼びます。

レンダリング=DOMを全部書き換えている?
ここでよくある誤解があります。

レンダリングって、画面を全部描き直してるってこと?

答えは NO です。

Reactは毎回「画面の完成イメージ」を作りますが、
本当に変わった部分だけをDOMに反映します。

この仕組みを支えているのが、**Virtual DOM(仮想DOM)**です。

Reactのレンダリングの流れ(ざっくり)
Reactの内部では、こんな流れが起きています。

state や props が決まる

「この状態なら画面はこうなる」という設計図を作る

前回の設計図と比較する

差分だけを実際の画面に反映する

この 2〜4 の一連の処理をまとめて
「レンダリングが走る」と言います。

いつレンダリングは起きるのか?
Reactでレンダリングが起きる代表的なタイミングは次の3つです。

① state が更新されたとき
setCount(count + 1)
このように setState 系の関数を呼ぶと、
「状態が変わった → 画面を作り直そう」となり、レンダリングが発生します。

② props が変わったとき
親コンポーネントから渡される値(props)が変わると、
それを使っている子コンポーネントも再レンダリングされます。

③ 親コンポーネントが再レンダリングされたとき
親がレンダリングされると、
その中にある子コンポーネントも基本的には再レンダリングされます
(※最適化しない限り)。

「レンダリング=画面が変わる」ではない
ここも重要なポイントです。

レンダリングが走った = 見た目が必ず変わる
というわけではありません。

state は更新された

でも表示内容は前と同じ

この場合でも、Reactは一度レンダリングを行います。
ただし、差分がないのでDOMの更新は起きません。

よくある混乱ポイント
console.log が何回も出るのはなぜ?
const Component = () => {
  console.log("render");
  return <div>Hello</div>;
};
これが何回も表示されるのは、
そのたびにレンダリングが実行されているからです。

「ボタン1回押しただけなのに2回出た」
という場合もありますが、それはレンダリングの仕組みとして正常なケースも多いです。

レンダリングを理解すると何が嬉しい?
レンダリングの理解が進むと、次のようなことが腑に落ちます。

なぜこの処理が何度も呼ばれるのか

なぜ useEffect がこのタイミングで動くのか

なぜ state を直接書き換えてはいけないのか

なぜ無駄な処理を書くと重くなるのか

つまり、Reactの挙動が予測できるようになるということです。

まとめ
Reactのレンダリングとは
「今の状態をもとに画面をどうするか決め直す処理」

レンダリング=DOMを全部描き直すわけではない

state / props / 親の再レンダリングで発生する

見た目が変わらなくてもレンダリングは起きる

レンダリングを理解すると、
Reactは「魔法のライブラリ」ではなく
ルール通りに動くUIエンジンだと分かってきます。

ここが見えてくると、Reactは一気に書きやすくなります。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら