关注本站公众号,
获取永久访问授权码
扫码关注,回复『刷题』即可.
~技术问答题~
返 回

No.835 说说DIFF 算法原理的理解?

题目描述~ 略...

寄语:问题比答案更重要

建议自己先有个思考的过程,有了自己的答案或者疑问再看解析进行对比。

目前解析在逐步添加中,也可以跳转链接查看。

在新老虚拟DOM 对比时:

首先,对比节点本身,判断是否为同一节点,如果不为相同节点,则 删除该节点重新创建节点进行替换

如果为相同节点,进行patchVnode,判断如何对该节点的子节点进 行处理,先判断一方有子节点一方没有子节点的情况(如果新的 children 没有子节点,将旧的子节点移除)

比较如果都有子节点,则进行updateChildren,判断如何对这些新 老节点的子节点进行操作(diff 核心)。

匹配时,找到相同的子节点,递归比较子节点 在diff 中,只对同层的子节点进行比较,放弃跨级的节点比较,使 得时间复杂从O(n3)降低值O(n),也就是说,只有当新旧children 都为多个子节点时才需要用核心的Diff 算法进行同层级比较。

解析或答案仅供参考。

关于作者

zz_jesse 专注前端

掘金 我的开源项目

公众号@前端技术江湖

一个可以帮开发者成长的公众号前端面试题库更新通知前端学习资料、干货文章

技术交流群

交流中成长大厂内推机会