1
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?

More than 3 years have passed since last update.

仮想DOMについて

Posted at

次に参画させて頂ける案件でフロント側でVue.jsを使用するので、現在勉強中です。
学習の前提として仮想DOMの仕組みについてメモ書きです。

#DOMとは
Document Object Model。
わかりやすく、オブジェクトではないがオブジェクトのような感じで、HTMLにアクセスすることが出来る形データの事。
https://developer.mozilla.org/ja/docs/Web/API/Document_Object_Model/Introduction
#仮想DOMとは
DOMをコピーしたjavascriptのオブジェクトの事。

#前提
・DOMに直接アクセスして処理を加えるというのは非常に遅い
・documentはコード上にあるのではなくブラウザにあり、そこにアクセスするのに時間がかかってしまう(DOMはブラウザ上にある)。
・なら、自分でjsでdocumentと全く同じオブジェクトを作ればアクセス時間が短くなる。

#仮想DOMの差分検出アルゴリズム
…「描画処理前」の仮想Nodeツリーから更新対象となる仮想Nodeを抽出する。

image.png

順番としては
1:仮想DOMツリーを作成する
2:変更前後の仮想DOMの差分を比較
3:仮想DOMからリアルDOMに反映する
4:差分を検知する
5:検知した差分でリアルDOMをブラウザがレンダリング
の流れで反映する。

#覚えておくポイント

・スピードが速くなるわけではない、不要なDOM操作が発生せず、ブラウザレンダリングの量が少なくなる為、「遅く」なりづらくなる。
・仮想DOMを採用している技術によってレンダリングのトリガーの仕組みを正確に理解していないと、期待した描画がされない可能性がある。

1
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
1
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?