2024 年,React 将成为一个依赖

276 阅读4分钟

本文为翻译作品,原文链接:React JS is just a dependency in the 2024

React JS 是一个流行的库,但越来越多的人依赖于框架 Next.js。

你还记得 React JS 最后一个稳定版本是什么时候发布的吗?那是将近两年前了——2022 年 6 月!

1.webp

看起来,负责 React JS 的 Facebook 团队决定暂停一下,转而做一些与开发库本身不同的事情。而这种不同,你可以在 React JS 的官方文档中找到:

2.webp

因此,根据 React JS 的官方文档,安装和学习 React JS 的正确方式是通过使用 Next.js、Remix 或 Gatsby。

基于上述框架的流行度,我们大多数人会选择 Next.js。

npx create-next-app@latest

诚然,这没什么不好,但现在你需要不仅学习 React 的基础知识,还要学习 Next.js,以便能够理解发生了什么,以及这些都是从哪里来的。想象一下,你是一名初级开发者,刚开始学习 React JS。对你来说,理解 React JS 的基础知识,然后再学习 Next.js 会很困难。最终,你当然会了解 React 的某些部分,但不是纯粹的 React JS,而是作为 Next.js 框架的一个依赖。

我们之前为什么选择 React JS 呢?

这是我几年前决定从 Angular 转向 React JS 的原因:

  • 性能:React 的虚拟 DOM 通常比 Angular 的真实 DOM 快,尤其是对于复杂和动态的应用程序,提供了更好的性能。
  • 灵活性和学习曲线:与 Angular 相比,React 更加灵活,学习曲线更小。它允许使用选择的额外库和工具。
  • 社区和生态系统:React 拥有更大的社区和更广泛的生态系统,为开发提供了丰富的库、工具和资源。
  • 简洁性和 JSX:React 使用 JSX 使组件更易于阅读和编写,从而简化了代码管理。

因此,多年来对每个人而言很明显,人们不想按照框架的指示去做事情,而是基于他们自己的决定去实践。因此,React JS 越发流行,现在仍然是构建 SPA 应用程序最常用的库。但是,现在一切都变了,因为 Next.js 和背后的 Vercel 决定将 React JS 放入框架中,如果你想用 Next.js 创建应用程序,他们将决定做什么以及如何做。

不要误解我的意思,我喜欢并享受 Next.js,但我不喜欢 React JS 团队所做的。如果我从 Angular 转到 React JS,仅仅几年后就回到框架方法,我会感到失望。

在 React 社区中对 Next.js 的日益依赖可以归因于几个因素:

  • 服务器端渲染(SSR):Next.js 提供开箱即用的服务器端渲染支持,这对 SEO 和改善 web 应用程序的初始加载时间至关重要。这是与传统 React 应用主要依赖客户端渲染相比的显著优势。
  • 静态站点生成(SSG):Next.js 提供在构建时预渲染页面的能力,创建静态 HTML 文件。这种方法提高了性能并增强了 SEO,使其成为内容驱动网站的理想选择。
  • 基于文件的路由:Next.js 通过基于文件系统的路由机制简化了路由过程。根据 ‘pages’ 目录中的文件名自动路由页面,减少了显式路由配置的需求。
  • API 路由:它允许开发人员轻松创建作为 React 应用程序一部分的 API 端点。这种集成简化了构建全栈应用程序的过程。
  • 零配置:Next.js 设计用于易用性,最小化配置需求即可开始使用,但对于更复杂的需求,它高度可定制。
  • 社区和生态系统:Next.js 在 React 社区中获得了显著的吸引力,得到了不断增长的生态系统和全面的文档支持。
  • 企业 Vercel,Next.js 的背后公司,为框架提供了积极的支持和开发,确保了其健壮性和长期性。

结论

总之,虽然 Next.js 为基于 React 的应用程序提供了强大的功能和增强,但它在 React 生态系统中的日益突出可以被视为一把双刃剑。一方面,它为服务器端渲染、静态站点生成和改进的开发体验提供了开箱即用的解决方案。另一方面,这种依赖可能会破坏 React 固有的灵活性和简洁性,增加新开发人员的学习曲线,并在较小的项目中引入额外的开销。

此外,这一趋势可能导致对特定框架的过度依赖,这可能对 React 项目的长期可持续性和适应性构成风险。它还可能导致生态系统碎片化,社区在纯 React 和 React-Next.js 方法之间分裂,可能扼杀开发实践的创新和多样性。

最终,虽然像 Next.js 这样的框架可以显著增强 React 应用程序,但开发社区重要的是要平衡这些好处与 React 的核心原则——简洁性、灵活性和轻量级架构。这种平衡确保了 React 对广泛的开发人员和项目,从小规模应用到大型复杂系统,都保持可访问性和适应性。