diff 算法作用

发布于 2023-05-04 19:25:04 字数 356 浏览 56 评论 0

在 组件更新时,会形成新的 VNode,新旧VNode 进行比较 patch,通过 diff 算法找出更新的地方,然后执行对应的 DOM 操作

diff 的过程:

  1. 比较两个节点是否是相同节点,通过 tag 和 key 判断,不是则直接删除,重新创建
  2. 都是文本节点则跟新文本内容
  3. 都是元素节点,则更新属性,然后更新子节点
    1. 如果新旧子节点都是数组的话,会进行更详细的 diff (双端 diff)
    2. 新旧节点为文本,则更新文本
    3. 新为文本,旧为数组则设置文本,清空数组
    4. 新为数组,旧为文本,则清除文本,创建数组中的子元素

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

攀登最高峰

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

qq_eQNo9e

文章 0 评论 0

内心旳酸楚

文章 0 评论 0

mb_BlPo2I8v

文章 0 评论 0

alipaysp_ZRaVhH1Dn

文章 0 评论 0

alipaysp_VP2a8Q4rgx

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文