获得徽章 0
- 这是在讶羽大佬的群里问 AI 的回答,就目前来说在专业知识领域,AI 还是在胡说八道。
我对这个 “为什么 React 的 Diff 算法不采用 Vue 的双端对比算法?” 问题再次作了一个小小的总结:
Vue2、Vue3 的 Diff 都有双端对比,都是两边往中间靠拢,Vue2 多两个首尾,和尾首的比较,剩下的部分 Vue2 和 Vue3 的处理就不一样了,剩下的部分 Vue3 就采用最长递增子序列算法处理,Vue2 则是暴力地一个一个处理。
React 的 Fiber 是一个单向链表结构,简单来说,就是只能从左往右处理,先处理简单的情况,处理完了,剩下的部分跟 Vue2 一样,也是暴力地一个一个地处理。
在这个过程,key 除了用来比较新旧节点是否相同之外,还有一个重要的作用,无论 Vue2、Vue3 还是 React 在处理完简单的部分之后,剩下的复杂部分,都是通过 key 来进行以空间换时间的操作,如果没设置 key ,则需要O(N²)的时间复杂度,有了 key 之后,就单单确定新老节点这一环节的时间复杂度直接变成了 O(1)。
此外,Vue 和 React 的 diff 都是自上而下,深度优先,我以前也曾在掘金上写过一篇文章专门探讨过这个问题。
本人水平有限,如有错漏,欢迎各路大神斧正。
文章地址:juejin.cn
展开评论5 - 3510
- 耗时2年!仿各大博客网站 搭建自己的博客网站
www.onebook.vip 易抒网
支持【文章发布】【私信】【评论】【速转】【个人装扮】【图片上传】等常用功能
同时,内测版仿炉石传说【英雄传说】也已更新 目前仅供个人测试,有兴趣的可以注册玩一玩 但是BUG很多
连接www.onebook.vip 该游戏仅供个人学习!
展开811 - 分享10个你几乎不使用的但很有趣的稀有HTML标签
当您第一次学习 HTML 时,您可能已经了解了许多网站中使用的最常见的标签,这些标签足以应付绝大多数情况。当然,每个 Web 开发人员都听说过无处不在的标签,例如<html>, <body>, <p>,<a>当然还有<div>.
1.<abbr>标签
2.<q>标签
3.<s>标签
4.<mark>标签
5.<wbr>标签
6.<details>标签
7.<optgroup>标签
8.<datalist>标签
9.<fieldset>标签
10.<sup>和<sub>标签
在本文中,我们探讨了 HTML 中一些鲜为人知和利用的标签。这些稀有标签在特定情况下可能非常有用,尽管它们的使用率很低。#艾编程前端笔记#展开评论4 - [分享11 个很酷的 Chrome Devtools 提示和技巧]我希望我已经知道的 11 个很酷的 Chrome Devtools 提示和技巧;选择 Chrome 作为开发工具时必须知道的 11 个技巧;
Chrome浏览器,作为前端开发者最亲密的伙伴,相信你一定不陌生。我们可以用它来查看网络请求、分析网页性能、调试最新的 JavaScript 功能……除了这些,它还提供了很多强大但不常见的功能,可以大大提高我们的开发效率。我们来看一下。
1.添加条件断点;
2.在控制台使用`$I'安装npm包;
3. 重新发送 XHR 请求;
4.快速切换主题颜色;
5.在控制台快速发送请求;
6. 复制 JavaScript 变量;
7. 在控制台中获取选中的 DOM 元素;
8.捕获全尺寸屏幕截图;
9.展开所有子节点;
10.使用“$”引用上次执行的结果;
11、使用“$和”$$快速选择DOM元素;
感谢你的阅读,如果对你有用,记得点赞支持哦!展开评论4
情人节你们送女朋友什么礼物啊 她想要iphone14 我想这有何难,做好送她后她说有点哭笑不得 怎么办JYM 进来康康 是我做的不够好吗![[不失礼貌的微笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_16.9d17f6d.png)