でじぼうです。
Web開発を始めるとよく出てくる DOM
や 仮想DOM
という言葉。
この記事では、DOMと仮想DOMの違いを解説します。

でじぼう
この記事は下記の方がおすすめ!
- DOMってそもそも何かよく分からない
- 仮想DOMとの違いがピンとこない
- Reactでよく出てくる用語をちゃんと理解したい
Instagramフォロワー数9,500人を越える人気のもち・大福店 えにかいたもち
DOMとは?
DOMとは、HTMLを「ブラウザが再構築した木構造のデータ構造」です。
ブラウザは、HTMLを読み込むと、内部で下記構造を作ります。 JavaScriptはこの構造を通じて要素を取得したり、書き換えたりできるわけです。
よく「ツリー構造」とも言われます。

例:JavaScriptがDOMを操作
<h1 id="title">こんにちは</h1>
document.getElementById("title").textContent = "こんばんは";
このように、JavaScriptはHTMLそのものを操作しているのではなく、 DOMという構造体を操作しているのです。
DOMは「分解できるお弁当」
DOMの概念をわかりやすくするために、近いものにたとえてみましょう!

例 | 説明 |
---|---|
HTML | お弁当の見た目(箱に詰まった中身) |
DOM | おかず1つ1つを取り出せる状態(部品として分解) |
JavaScript | お箸(中身をつまんだり変えたりできる) |
DOM操作のデメリット
DOMは便利ですが、次のようなデメリットもあります。
- 操作するたびに画面を再描画する必要がある
- ページが大きくなると、全部のDOMをチェックするのが大変で重い
これが、パフォーマンスの問題につながります。
仮想DOMとは?
仮想DOMとは「実際の画面(DOM)を直接書き換える前に、メモリ上にコピーを作って差分だけ反映する仕組み」です。
比喩で理解
通常のDOM操作
- ポスターに直接書き込みする(ミスしやすい)
仮想DOM操作
- まずメモ帳で修正案を書いてから、違いだけポスターに反映する
仮想DOMの動き
- ユーザーが何か操作(例:ボタンをクリック)
- 仮想DOMが新しい状態をメモリ上で作成
- 古い仮想DOMと比較して「どこが変わったか?」をチェック
- 本物のDOMに変わった部分だけ反映!
仮想DOMのメリット
- 必要な部分だけを更新するので効率的
- 再描画が最小限なので速い
- 保守性・読みやすさも向上(Reactなどで使われている理由)
DOM ・ 仮想DOM の比較表
項目 | DOM | 仮想DOM |
---|---|---|
操作対象 | 画面そのもの(実際のDOM) | メモリ上の仮のDOMツリー |
更新方法 | 直接変更(リアルDOMを操作) | 差分のみを検出して効率的に更新 |
パフォーマンス | 重くなりがち | 軽くて速い |
使用場面 | HTMLや基本的なJavaScript開発 | React / VueなどのモダンFW |
コメント