仮想ドムのコンセプト

1.コンセプト:


仮想 DOM は、実際にはネイティブ JS オブジェクトを使用して DOM ノードを記述しており、実際には実際の DOM を抽象化したものにすぎません。最後に、一連の操作によって、このツリーを実際の環境にマッピングできます。

これは、js と DOM の間にキャッシュを作成し、パッチ (diff アルゴリズム) を使用して新旧の仮想 DOM レコードをオブジェクトと比較し、必要に応じて更新し、最終的に実際の DOM を作成することに相当します。

2. 仮想ドームの原理プロセス


テンプレート ==> レンダリング関数 ==> 仮想 DOM ツリー ==> 実際の DOM

    Vuejs はコンパイルによってテンプレート (template) をレンダリング関数 (render) に変換し、レンダリング関数を実行すると仮想ノード ツリーを取得できます。

    モデルを操作すると、対応する Dep で Watcher オブジェクトがトリガーされます。Watcher オブジェクトは、対応する更新を呼び出してビューを変更します。

仮想 DOM の実現原理には、主に次の 3 つの部分が含まれます。

    JavaScript オブジェクトを使用して実際の DOM ツリーをシミュレートし、実際の DOM を抽象化します。diff
    アルゴリズム (2 つの仮想 DOM ツリーの違いを比較します。pach
    アルゴリズム) は、2 つの仮想 DOM オブジェクトの違いを実際の DOM ツリーに適用します。

グラフィック: ここに画像の説明を挿入

        レンダリング機能: レンダリング機能は、仮想 DOM を生成するために使用されます。
        VNode 仮想ノード: 実際の DOM ノードを表すことができます。createElement メソッドを使用して、VNode を dom ノードにレンダリングできます。簡単に言えば、vnode は、実際の DOM ノード パッチ (パッチング アルゴリズムとも呼ばれます) を作成する方法を説明するノード記述オブジェクトとして理解できます。
        これは、vNode を実際の DOM にレンダリングできる仮想 DOM のコア部分です。古い仮想ノードと新しい仮想ノードの違いを比較し、比較結果に従って更新が必要なノードを見つけます。

3. 仮想 DOM のメリット


    クロスプラットフォームの利点 – 仮想 DOM は JavaScript オブジェクトに基づいており、実際のプラットフォーム環境に依存しないため、ブラウザー プラットフォーム、Weex、Node などのクロスプラットフォーム機能を備えています。
    DOMの動作は遅く、jsの動作効率は高い。DOM 比較操作を JS レイヤーに配置して、効率を向上させることができます。パッチ適用アルゴリズムを使用して、更新が本当に必要なノードを計算し、DOM 操作を最小限に抑えることで、パフォーマンスを大幅に向上させます。仮想 DOM は、基本的に JS と DOM の間のキャッシュです。
    レンダリング パフォーマンスの向上 Virtual DOM の利点は、単一の操作ではなく、多数の頻繁なデータ更新の下での合理的かつ効率的なビューの更新です. Virtual DOM は、ブラウザーのパフォーマンスの問題を解決するように設計されています
    .

おすすめ

転載: blog.csdn.net/m0_52578688/article/details/125284019
おすすめ