gpt4 book ai didi

javascript - 是什么让 ReactJS 像它声称的那样快?

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:24 25 4
gpt4 key购买 nike

我正在学习 ReactJS 并试图了解是什么让它比其他框架和库提供的解决方案“更快”和更特别。

我知道以下内容:

  1. Virtual DOM 以及 React 如何运行差异以采取最少的步骤来确定“更改”并相应地响应/重新呈现,而不是其他框架中的传统“脏检查”操作/图书馆。
  2. 通过“Observable”模式以声明方式编程,而不是命令式实现。

因此,上述陈述在概念上对我来说听起来很不错,但是,当我考虑现实生活中的用例和实践时,我无法想象这些好处:

  1. 考虑使用 jQuery:

    $("#box").removeClass('red').addClass('blue');

它比以 React 方式做同样的事情“慢”在哪里?按照我的理解,jQuery 将直接从 DOM 中获取 1 个具有匹配 id 值“box”的元素,并按照指示删除和添加类——所有这些都特定于 DOM 中的这个元素。 (它是否在此处执行“脏检查”以查找#box?)

使用 ReactJS,它会首先在其虚拟 DOM 中进行相同的更改(在执行 diff 以使用最少的步骤找到#box 之后),然后将元素重新渲染到实际的 DOM。因此,如果有的话,它似乎添加了一个与 VDOM 进行比较的额外步骤。

  1. Observable 模式一直存在。为什么它是第一次应用于事件处理操作?..做类似的事情:

“嘿,这里发生了一些变化(事件触发)......所以让我们看看我们应该做什么(运行绑定(bind)到事件的所有内容)并执行它”

如有任何见解、建议和示例,我们将不胜感激!

最佳答案

您可能是对的,在这种情况下 jQuery 可能会更快(我还没有测试过)。但是请考虑一下,您为什么要使用 jQuery - 如果您使用它会不会更快

document.getElementById("MyID").className = document.getElementById("MyID").className.replace(/\bred\b/,'');
document.getElementById("MyID").className = document.getElementById("MyID").className + ' blue';

所以说真的,我们并不是要在这里竞争原始速度,否则你只会用纯 javascript 编写,我知道这样做的公司纯粹是为了在移动设备上更快。

框架的好处是维护和开发速度。纯 javascript 编程比 jQuery 更难扩展和维护,同样地,jQuery 编程比 React 更难扩展和维护。虽然反过来是正确的,但使用 jQuery 获得功能最少的工作应用程序要快得多(但在构建 mvp 之后,维护起来会变得更加困难)

在小型代码库中,jQuery 可能比 React 更快,但当您使用较大的代码库时,您会发现 jQuery 中有大量重复和冗余代码,并且它本质上变得更慢。然而,React 是不同的 - 首先,React 将所有内容隔离到组件中,因此它变得更容易重用,其次,React 有一个很酷的内部引擎,可以防止无用的渲染减慢你的应用程序。

所以是的,你是对的,jQuery 可以比 React 更快,但这确实没有捕获 React 的重点。就像纯 javascript 可能比 jQuery 更快一样,但这没有捕获 jQuery 的重点。

关于javascript - 是什么让 ReactJS 像它声称的那样快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com