React不再是JavaScript框架的无可争议冠军
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
过去几年里,前端开发已悄然进入新阶段。React 曾是 JavaScript 框架的无可争议的冠军,如今正面临挑战。现代浏览器功能更强大,开发者更加挑剔,形势即将明朗。 与此同时,各种工具表明,构建快速、可维护、交互式应用的方法不止一种。 那么,React 是否正被取代?并非如此。但我们确实看到了转变——一个“后 React 时代”——这并非由 React 的消失定义,而是由其垄断地位的丧失定义。本文探讨了这究竟意味着什么。 React 不再是唯一答案十多年来,React 塑造了我们编写前端代码的方式。它以组件化模型、虚拟 DOM 和强大的状态生态系统重新定义了 UI 架构。但 React 建立的基础假设现在正受到审视。当原生 DOM 变得更快、更一致时,我们是否还需要虚拟 DOM?每个交互都必须依赖hydration和 JavaScript 密集型抽象吗? 随着开发者寻求更轻量、更快的替代方案,这些问题正被认真提出。React 的“一刀切”主导地位正在让位于更符合 Web 原生的方法,这些方法拥抱简单性。并非 React 不好——而是前端格局已经演变。
我们曾经需要用来修复浏览器不一致性的工具,现在正在解决它们可能造成的问题。随着框架和开发者重新思考旧模式,前端不再是“默认 React”。 Remix 的转向预示着更广泛的转变当 Remix v3 在其架构的某些部分宣布转向脱离 React时,引发了新一轮讨论。该公告并非对 React 的谴责,而是一种务实的步骤,旨在重新思考假设。Remix 很久以来一直被视为基于 React 的全栈框架——但这个标签一直有些误导性。Remix 团队首先围绕 Web 平台构建,React 更多是作为实现细节而非金科玉律。 他们最近的转变反映了一种更深刻的认识:我们并非处处都需要 React。服务器端渲染、原生 DOM 操作、渐进增强——这些都是 Web 平台现在相当能自行处理的。 Remix 决定依靠这种优势,而不是用抽象密集型模式与之对抗,这是一个警钟。开发者已厌倦 hydration 开销、状态管理复杂性和为简单任务过度工程化。 相反,像 Remix 这样的框架正回归基础:HTML 优先渲染、通过标准浏览器 API 的声明式数据获取,以及服务器优先的路由逻辑。这并不意味着 React 被抛弃,而是意味着 React 现在是可选的。这为更模块化、可组合的方法敞开了大门,其中 React 只是众多工具之一,而不是所有事物的基石。 HTML 优先和原生 DOM 框架的兴起React 诞生于浏览器不一致、JavaScript 是提供交互式体验的唯一可靠方式的时期。但现代浏览器已成熟。form.submit()、fetch、Web Components 和 View Transitions API 等API意味着,我们无需每次都依赖组件框架即可构建引人入胜的体验。 这就是为什么 HTML 优先的框架正在兴起。像 Astro、HTMX 和 Enhance 这样的工具正在颠覆现状。它们优先考虑最小化 JavaScript、服务器渲染的 HTML 和渐进增强。它们没有将 DOM 视为需要抽象处理的“肮脏伎俩”,而是将其视为一等公民。交互性仅在需要时才叠加其上。 例如,Astro 让你默认无需传输任何 JavaScript。HTMX 可以在没有客户端框架的情况下,将你的现有 HTML 转换为响应式界面。这些工具更符合当今 Web 的性能和可访问性需求。它们并非试图完全取代 React,而是更高效地解决不同的问题。“要么 React,要么什么都没有”的时代已经结束。 React 服务器组件的赌注React 并未袖手旁观。它的创造者也看到了这种转变,并推出了自己的反叙事:React 服务器组件(RSC)。其理念是更智能地在服务器和客户端之间拆分应用,仅向浏览器发送绝对必要的内容。这承诺了更好的性能、更小的捆绑包、改进的开发者体验,以及通过减少负载和服务器压力可能有助于优化云成本。 但 RSC 引发了自身的分裂。它极大地改变了 React 应用的构建方式。它破坏了与现有模式、工具甚至心智模型的兼容性。在现有应用中采用 RSC 的复杂性不容小觑。它还使开发者更紧密地锁定在 Next.js 等元框架中,这些框架已经为 React 添加了抽象层。 一些开发者觉得 RSC 是一种重新发明,解决了 React 一开始创造的问题。hydration 问题?虚拟 DOM 效率低下?这些都是 React 最初推广的客户端密集型模式的产物。RSC 旨在纠正这一点,但代价是失去了简单性。这种赌注是否会成功还有待观察——尤其是当其他框架用更少的仪式达到类似结果时。 框架跳出 JSX 的思维定式JSX 曾经感觉很神奇。它让开发者在 JavaScript 中编写类似 HTML 的语法,模糊了逻辑和标记之间的界限。但这种模糊在某些情况下现在感觉像是一种负担。开发者正在重新考虑,是否真的有必要将渲染逻辑与有状态组件紧密耦合在每个项目中。 以 SolidJS、Qwik 或 Svelte 为例——每个都在重新定义组件的编译、渲染或恢复方式。Svelte 在构建时进行编译。Qwik 引入了可恢复性,以实现近乎即时的交互性。Solid 完全绕过虚拟 DOM,实现细粒度的响应性。 即使是 Lit 和Web Components也迎来了第二春,由 React 抽象出的平台所倡导。而且,让我们不要忽视原生 DOM API 本身——它们远未死亡,正在没有 JavaScript 密集型栈的情况下驱动更精简、更快的应用。 JSX 仍然有拥趸,但工具的单一种族文化正在瓦解。 React 仍是王者吗?在职位列表、npm 下载和 GitHub 星标方面,React 仍然占据主导地位。其生态系统成熟;对于具有复杂状态的大型应用,它仍然是一个稳妥的选择。但它的主导地位不再是绝对的。我们看到工具、理念和权衡取舍正在多样化。 我们见证的并非王权的更迭,而是去中心化。React 不再是默认答案。前端领域正在再次变得多语言——选择技术栈现在意味着要问你需要什么样的交互性、哪些约束很重要,以及你喜欢什么样的开发者体验。 对于许多团队来说,React 仍然是合适的工具。但对于其他人来说,回归更简单、更原生的 Web 方法正在带来更好的性能、更快的开发和更低的认知开销。 结语“后 React”并不意味着 React 已过时——它只是意味着我们现在正在超越 React 进行思考。这意味着我们承认 React 的解决方案并不总是理想的,并且替代方案已经成熟到足以真正地挑战它。这是一种思维方式的转变:从框架优先转向 Web 优先。 这并非 React 的终结,而是更广泛、更丰富的前端生态系统的开始。在这个生态系统中,开发者有权使用适合工作的正确工具——即使那个工具只是一个
阅读原文:原文链接 该文章在 2025/7/14 18:50:47 编辑过 |
关键字查询
相关文章
正在查询... |