本文へスキップ

仮想DOMとは?

かそうどむ

仮想DOMとは、ブラウザの実際のDOMを直接操作する代わりに、メモリ上に保持した軽量なDOM表現を使って差分だけを効率よく反映する技術です。

仮想DOM(Virtual DOM)は、Webページの構造を表すDOM(Document Object Model)を、JavaScriptオブジェクトとしてメモリ上に再現した仮想的な複製です。ReactやVue.jsなどのモダンフロントエンドフレームワーク採用する中核的な技術のひとつです。

従来のDOM操作では、UI状態が変化するたびに直接ブラウザのDOMを書き換えていました。DOMの変更はレイアウト計算や再描画(リフロー・リペイント)を引き起こすため、頻繁な更新はパフォーマンスの低下につながります。

仮想DOMはこの問題を次のように解決します。

  • 状態(state)が変化すると、まず新しい仮想DOMツリーを生成する
  • 古い仮想DOMとの差分(diff)を算出する(diffingアルゴリズム)
  • 変更が必要な最小限の箇所だけを実際のDOMに適用する(パッチング)

この仕組みにより、開発者はUIの「あるべき状態」を宣言的に記述するだけで、効率的な更新処理がフレームワーク側で自動的に行われます。コードの見通しが良くなり、複雑なUIの状態管理も扱いやすくなります。

ただし、仮想DOM自体も計算コストを持つため、シンプルなページでは必ずしも高速ではありません。SvelteのようにコンパイルタイムにDOM操作を最適化する別アプローチも登場しており、フロントエンド技術は進化を続けています。

使い方・例文

Reactでチェックボックスの状態を切り替えると、仮想DOMが差分を計算し、変更があった該当のDOM要素だけを更新するため、ページ全体の再描画を避けて高速に動作します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語