首页 > 其他分享 >Rethink React:它仍然是一个好的库吗?

Rethink React:它仍然是一个好的库吗?

时间:2022-09-04 12:11:48浏览次数:93  
标签:虚拟 DOM Rethink React 仍然 UI 声明

Rethink React:它仍然是一个好的库吗?

Photo by 约书亚阿拉贡 on 不飞溅

大约 4 年前,我开始将 React 作为我前端开发的首选。然而,时代在变。更好的东西已经出来了……

一开始,我是一个 React 爱好者,因为它比当时的其他框架/库优雅得多。声明式 UI(和 JSX,一种语法糖 用于 UI)、虚拟 DOM 和单向数据流……这些东西让我着迷,生态系统和社区也是如此。然而,我现在对它感到失望。

下面我们将讨论 React 的两个部分:“性能”和“稳定性”。

表现

React 中的虚拟 DOM 是一个谎言,因为运行时差异确实会损害性能。

React 中声明式 UI 的工作原理由虚拟 DOM 提供支持。它是一个简单的对象,用于存储有关渲染的内容(Idk 它的结构确实看起来像,但我认为它在 React Fiber 出现后会发生变化)并且 React 确实“ 和解 ” 用于与它同步真实的 DOM。

官方文档仅显示了有关该过程的启发性的一些要点。但对我来说,它真的是一个黑匣子,因为我从来没有接触过源代码。但这没关系。问题不在于它背后的算法。这是关于为什么 React 在运行时而不是构建时间(一些框架已经这样做) )。

稳定

React 太被动了。

除了内置的协调之外,React 提供了 2 种减轻重新渲染的方法。

  1. 内置钩子: 使用备忘录 , 使用回调
  2. 反应备忘录 / 应该组件更新

老实说,这很糟糕,而且成本很高。如果你希望它们不重新渲染,你需要用一个更多的函数来包装变量、函数或组件,并做出更多的区分。

不仅让 DX 变得更糟,而且这种比较(差异化)也会让你的应用程序变慢。

我认为 React 团队已经注意到了第一个问题并运行了项目:React Forget 来拯救我们的 DX。如果您想了解更多关于这个项目的信息,请观看 React Conf 2021 的回放: React without Memo - YouTube .

结论

在我看来,这些问题的根本原因是 React 的哲学。例如,现代前端框架之一, 苗条 , 给出了更好的解决方案:

  1. 没有虚拟 DOM:将你的代码编译成微小的 vanilla js
  2. Reactive on your own:默认情况下是非反应性的,如果需要,可以标记它。

我真的很喜欢这个概念: 不要让一切都是被动的。

也许 React 现在不会改变,我仍然需要在工作中使用 React。然而,React 18 的流式 SSR 和选择性水合等新功能仍然给我留下了深刻的印象。我还在等待 React Forget 和其他新功能的出现。

给这个帖子 鼓掌 和我的博客 跟随 如果你喜欢这篇文章并想看更多。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/12300/01240412

标签:虚拟,DOM,Rethink,React,仍然,UI,声明
From: https://www.cnblogs.com/amboke/p/16654796.html

相关文章