当前位置: 首页 > wzjs >正文

做网站在哪接单黑帽seo技术论坛

做网站在哪接单,黑帽seo技术论坛,wordpress外贸B2C建站,集团高端网站建设一个有趣的问题 之前我写了一篇狗教我 React——原理篇之 Diff 算法 - 掘金 (juejin.cn)简单介绍了 diff 算法,收到了一个有意思的疑问: 大佬讲得非常易懂,我有个疑惑就是都说 diff 处理节点前移比较差,比如 a→b→c→d 更新为 d→a→b→c,如果第一遍循环到第一个就截止了…

一个有趣的问题

之前我写了一篇狗教我 React——原理篇之 Diff 算法 - 掘金 (juejin.cn)简单介绍了 diff 算法,收到了一个有意思的疑问:

大佬讲得非常易懂,我有个疑惑就是都说 diff 处理节点前移比较差,比如 a→b→c→d 更新为 d→a→b→c,如果第一遍循环到第一个就截止了,把剩余旧的节点全放入剩余 map 中,第二次遍历不是都可以复用的吗,何来处理差这一说呢

这个问题看似简单,实则涉及到了 React diff 算法的细节,我在评论区简单回复了这个问题,但感觉还是不够详细,所以单独写一篇文章来详细解释一下。

示例中的更新流程是什么样的

首先,我们需要知道,React diff 算法是分两轮进行的,第一轮是处理节点复用,第二轮是处理节点重排。

如上面评论提到,第一次遍历时,第一个节点 key 不同,所以直接跳过,进行第二次遍历。

首先,我们来看一下更新流程是什么样的。

// 更新前
<ul><li key="a">a</li><li key="b">b</li><li key="c">c</li><li key="d">d</li>
</ul>
// 更新后
<ul><li key="d">d</li><li key="a">a</li><li key="b">b</li><li key="c">c</li>
</ul>

在这里插入图片描述

在第一轮遍历时,我们遇到第一个节点,发现 key 不同,所以直接跳过,进行第二轮遍历。

剩余的旧的 FiberNode 放入到一个 map 里:

在这里插入图片描述

http://www.dtcms.com/wzjs/355594.html

相关文章:

  • 家居网站建设精英搜索关键词是什么意思
  • 舟山集团网站建设网站关键词百度自然排名优化
  • 白银市做网站免费的网站平台
  • 建立网站就可以赚钱了吗seo刷网站
  • 那个网站的机票做便宜广告推广公司
  • 网站seo工具最近的头条新闻
  • 手机怎么做3d短视频网站石家庄网站建设seo
  • Sping boot做网站天津seo优化公司哪家好
  • 企业网站在ps里做吗抖音seo排名系统哪个好用
  • 河南专业页面设计模型设计南京关键词seo公司
  • 威宁做网站宁波网站推广方式
  • 小程序模板开发平台seo综合
  • 个人能接做网站的活么外贸建站优化
  • 企业营业执照查询网上查询网站seo平台
  • 做网站的滚动字幕怎么制作深圳今日头条新闻
  • 安卓网页视频下载黑帽seo培训多少钱
  • 网站备案公安局郑州网站推广电话
  • 小程序开发外包太原整站优化排名外包
  • 日本女做受视频网站在线友情链接
  • 安徽设计网站建设软文怎么做
  • 网站自己做服务器百度推广优化方案
  • 现在的网站怎样做推广九个关键词感悟中国理念
  • 兖州中材建设有限公司网站seo优化seo外包
  • 买了个域名怎么做网站重庆seo按天收费
  • 海北公司网站建设多少钱网站关键词快速排名工具
  • 设计专业知名企业网站在线培训考试系统
  • 注册网站名字baidu百度
  • 有什么做节能报告的网站南宁今日头条最新消息
  • 北京新鸿儒做的网站百度seo价格查询
  • 属于o2o的电商平台有哪些天津网站优化公司