网上几乎所有虚拟dom的diff算法都是维护四个索引变量,来进行dom的更改。请问这样子的算法的优势在哪,为什么全部都选择这样子的算法呢?
如果我用简单的循环操作算法(如下)劣势又是什么呢?
逐个遍历newVdom的节点,找到它在oldVdom中的位置,如果找到了就移动对应的DOM元素,如果没找到说明是新增节点,则新建一个节点插入。遍历完成之后如果oldVdom中还有没处理过的节点,则说明这些节点在newVdom中被删除了,删除它们即可。
网上几乎所有虚拟dom的diff算法都是维护四个索引变量,来进行dom的更改。请问这样子的算法的优势在哪,为什么全部都选择这样子的算法呢?
如果我用简单的循环操作算法(如下)劣势又是什么呢?
逐个遍历newVdom的节点,找到它在oldVdom中的位置,如果找到了就移动对应的DOM元素,如果没找到说明是新增节点,则新建一个节点插入。遍历完成之后如果oldVdom中还有没处理过的节点,则说明这些节点在newVdom中被删除了,删除它们即可。
13 回答13k 阅读
7 回答2.1k 阅读
9 回答1.7k 阅读✓ 已解决
6 回答1.5k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决