Diff到底是怎麼更新的?這個小玩具將Diff的過程視覺化了出來

賽博朋克的傑洛特發表於2020-01-12

起因

當一個由陣列的渲染的列表,當陣列的首尾顛倒,DOM是如何變化的?

我當時回答的不是特別好,所以後來專門上網研究了一下。

網上有許多介紹diff演算法的文章,但是一大坨文字配上大量原始碼,讓人實在沒有看下去的慾望。於是乎,我做了這個小工具,希望大家可以輕鬆瞭解Diff更新的過程。

如何展現

舊的dom

image

新的dom

image

這個工具會逐步將Diff更新的過程,視覺化的展現出來

QQ20200112-103418.gif

地址

實現原理

實現的原理很簡單,我自己動手實現了一個基於純js物件的diff演算法(不需要對映到瀏覽器的dom),diff演算法會將更新中的每一個步驟的結果,儲存到一個快照陣列中,最後遍歷這個快照陣列即可。

未來

  • 新增動畫
  • 可供網友自定義輸入新舊dom的功能

相關文章