初めにDomとはDocment Object Modelのこと。
仮想DOMとはブラウザ上で保持しているDomをJavascript上で模倣して作って保持しているものをいう。
なせ仮想DOMが必要?
前提としてブラウザで保持しているDOMのデータを更新するには時間がかかる。(パフォーマンスが落ちる)
次に
表示画面を考えてどういうアルゴリリズムであれば効率的に画面表示の変更ができるのか?
⇨変更前と変更後のDOMを比べてその差分だけを変更するアルゴリズムを考える。
ここで変更前の差分を作る前にブラウザ上のDOMを取得して行うとめちゃめちゃ時間を食うので自前でjavescript,vuejs内部で作って差分を取るのはさほど時間はかからないで行える。
ということは自前に変更前仮想DOMと自前の変更後仮想DOMを比べる方法をとってブラウザには差分のみの変更データを渡すようにする。