Rethink React:它仍然是一个好的库吗?
大约 4 年前,我开始将 React 作为我前端开发的首选。然而,时代在变。更好的东西已经出来了……
一开始,我是一个 React 爱好者,因为它比当时的其他框架/库优雅得多。声明式 UI(和 JSX,一种语法糖 用于 UI)、虚拟 DOM 和单向数据流……这些东西让我着迷,生态系统和社区也是如此。然而,我现在对它感到失望。
下面我们将讨论 React 的两个部分:“性能”和“稳定性”。
表现
React 中的虚拟 DOM 是一个谎言,因为运行时差异确实会损害性能。
React 中声明式 UI 的工作原理由虚拟 DOM 提供支持。它是一个简单的对象,用于存储有关渲染的内容(Idk 它的结构确实看起来像,但我认为它在 React Fiber 出现后会发生变化)并且 React 确实“ 和解 ” 用于与它同步真实的 DOM。
官方文档仅显示了有关该过程的启发性的一些要点。但对我来说,它真的是一个黑匣子,因为我从来没有接触过源代码。但这没关系。问题不在于它背后的算法。这是关于为什么 React 在运行时而不是构建时间(一些框架已经这样做) 那 )。
稳定
React 太被动了。
除了内置的协调之外,React 提供了 2 种减轻重新渲染的方法。
老实说,这很糟糕,而且成本很高。如果你希望它们不重新渲染,你需要用一个更多的函数来包装变量、函数或组件,并做出更多的区分。
不仅让 DX 变得更糟,而且这种比较(差异化)也会让你的应用程序变慢。
我认为 React 团队已经注意到了第一个问题并运行了项目:React Forget 来拯救我们的 DX。如果您想了解更多关于这个项目的信息,请观看 React Conf 2021 的回放: React without Memo - YouTube .
结论
在我看来,这些问题的根本原因是 React 的哲学。例如,现代前端框架之一, 苗条 , 给出了更好的解决方案:
- 没有虚拟 DOM:将你的代码编译成微小的 vanilla js
- 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