0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【React初心者メモ】レンタリングとは

Last updated at Posted at 2025-06-15

レンタリングとは、Reactコンポーネントの関数本体を実行して、画面に表示するための「仮想 DOM」を生成し、最終的にブラウザのDOMに反映する一連の処理のことです。

Reactのレンダリングは大きく分けて「初回レンダリング」と「更新レンダリング」の2フェーズで動いていて、その背後では“仮想 DOM”と“差分アルゴリズム” が働いています。

初回レンタリング

以下の流れで実行されます。

  1. コンポーネント呼び出し
    ・ReactDOM.createRoot(...).render() が最初に呼ばれる
    ・App(関数コンポーネント)の本体が一度だけ実行される
  2. 仮想 DOM の構築
    ・JSX から JS オブジェクト形式のノードツリーを作成
  3. 差分検出とコミット
    ・空の DOM と比較して差分(パッチ)を作成
    ・実際の DOM に必要最小限の要素を追加して画面に表示

結果:画面が初めて描画され、ユーザーに UI が見える状態になる

更新レンタリング

State や Props の変更などをトリガーに再度レンダリングが走る流れです。

主なトリガー
・Stateの更新
 useState/useReducerなどで状態を更新したとき
 例:setCount(count + 1)
・Propsの変更
 親コンポーネントが渡す値 () が変わったとき
・Contextの更新
 Context.Providerのvalue が変わったとき

以下の流れで実行されます。

  1. 再コンポーネント実行
    変更を受けたコンポーネント(と必要なら子孫)がもう一度関数として実行される
    ⇒ 関数の先頭から末尾まで最新の値で再評価

  2. 新しい仮想 DOM の生成
    初回と同じ仕組みで、新しいツリーを作る

  3. 差分検出
    ・旧仮想DOMと新仮想DOMを比較
    ・何が追加・更新・削除されたかをマークする

  4. コミット(Commit)
    ・差分だけを実際のDOMに反映
    ・useLayoutEffect → DOM 操作や計測
    ・useEffect → 非同期的な副作用処理

結果:画面が最新の状態に更新され、必要最小限のDOM操作で高速に再描画される

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?