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