diff アルゴリズム、再帰的 M

差分アルゴリズム

diff アルゴリズムは、実際の Dom と仮想 Dom (js オブジェクト) の差分を比較し、ビューを更新します。
特徴:
diff の全体的な戦略は、深さを優先し、同じレイヤーを比較することです。

  1. 比較は同じレベルでのみ行われ、レベル間の比較は行われません。
  2. diff 比較の構成では、ループは
    diff アルゴリズムを両側から中央まで比較するため、多くのシナリオで使用されます。Vue では、仮想 DOM を実際の DOM にレンダリングする新旧の VNode ノードを比較するために使用されます。 。

再帰関数

再帰とは、無限レベルでの配列またはオブジェクトの走査です (ブラウザのメモリ リークを防ぐために終了条件を設定する必要があり、終了条件が有効である必要があります)。
例:
for ループの代わりに再帰を使用します。

//依次打印1~10
for (var i = 1; i <= 10; i++) {
    
    
    console.log(i);
}
//借用递归实现
function fn(e) {
    
    
    console.log(++e);
    if (e === 10) {
    
    
        return
    }
    fn(e)
}
fn(0)

再帰は深さ優先と幅優先に分けられます。
深さ優先とは深さに基づくことを意味します。ツリー機構の枝をパスとみなすことができ、深さ優先再帰を実行すると、プログラムは 1 つのパスを進めなくなるまで進み、別のパスを変更して最後まで続行します。高く、深く。
幅優先とはその逆で、幅優先とは各レベルのすべてのオプションを通過し、最初のレベルが終了した後でのみ 2 番目のレベルを実行することです。

おすすめ

転載: blog.csdn.net/Sunshinedada/article/details/130794344