顶级 React 框架对比,Vite 完美胜出?

职场   2024-09-13 07:59   浙江  

很多人的React 之旅,是从 CRA(create-react-app)库开始的。

但时至今日,我们发现,通过 CRA 构建项目来学习 React,却并不是一个好点子了。

为什么呢?我们拒绝 CRA 的一些原因如下:

  • 与其他产品相比,构建时间更慢
  • 对生成自定义的控制局限
  • 缺少服务器端渲染(SSR)
  • 过时,因为自 2021 年以来 CRA 再没重大更新。

反之,从传统 CRA 切换到现代 React 框架则有众多好处:可以提供更多功能;可以根据需求,例如 SSR、性能等提供多种选择。

今天,我们将介绍一些我们大家可以使用来代替 CRA 的最佳替代方案,具体涉及:

  • 替代方案的功能和最适合哪种应用开发
  • 一些性能指标,例如开发服务器时间、构建时间、部署时间和首次内容绘制(FCP)。

这些顶级 React 框架绝对不容错过。一起来看看吧。

Next JS

Next.js by Vercel 是面向 web 的全栈 React 框架。

Component Tree

NextJS 一直是我首选的 CRA 替代方案。我用它也有很长时间了。随着一次次的更新,NextJS 在不断地改进。

轻轻松松地,使用 Nextjs,开发人员便能够大展手脚了。

特性:

  • 服务器端渲染:可使用 SSR 提高性能,通过预渲染页面加快加载时间。
  • API 路由:可通过 API 路由在 NextJS 中集成全栈开发。
  • 自动代码切分:遵循推荐的项目结构,具有更好的代码切分,提高了性能。
  • 与 Vercel 轻松集成:NextJS 由 Vercel 团队构建。因此,使用 Vercel 进行部署轻而易举。

最适合构建与服务器没有集成(或很少与服务器集成)的无服务器应用程序。

SSR:服务器端渲染(SSR)是一种 web 应用程序渲染技术,每次用户请求页面时,都会在服务器上生成页面的 HTML。

ViteJS

时刻准备着追赶冲锋的开发环境。哈哈~

ViteJS

Vite 在构建项目时,更注重快速、加载时间更短的性能。

与 Webpack 等传统捆绑器相比,Vite 使用的开发服务器无需捆绑整个应用程序,即可提供近乎即时的热模块替换(HMR)。

更快,更强,更高效。

特性:

  • 更快的开发服务器:借助本机 ES 模块和现代浏览器功能,提供了更快的开发服务器。
  • 丰富的插件支持:Vite 具有灵活的插件支持。可轻松集成插件来扩展 Vite 的功能。
  • 优化的构建过程:实现了构建时 tree shaking、代码拆分和其他性能增强。
  • SSR 和 SSG:Vite 还支持服务器端渲染和静态站点生成。

Vite 最适合开发性能更优越的博客网站。

SSG:静态站点生成(SSG)是一种在构建时预呈现网站 HTML 页面的方法,可为每个页面生成静态 HTML 文件。

Remix

Remix 是一个全栈式 web 框架,专注于用户界面,背靠 web 标准,提供快速、流畅且有弹性的用户体验。

Remix 专注于构建更优的用户体验,可用于构建全栈应用程序。如果你熟悉 Rails 和 Laravel 这样的服务器端 MVC web 框架,那么 Remix 就是 View 和 Controller。

特性:

  • 数据加载:使用加载器在渲染页面之前在服务器上获取数据。
  • 轻松路由:提供基于文件的路由系统。可根据创建目录提供路由。NextJS 也支持此功能。
  • 服务器端渲染:支持 SSR。
  • 表单和操作:内置对表单处理和操作的支持。有助于高效管理表单提交和操作。

最适合构建需要高级路由、SSR 和注重性能的项目。

Gatsby

Gatsby 是一个基于 React 的开源框架,重视性能、可扩展性和安全性。

Gatsby 是另一个基于 React 的框架,专注于构建快速、安全和优化的网站。主要用于创建静态站点,也通过 API 和集成支持动态内容。

特性:

  • 服务器端生成:SSG 支持 Gatsby 可将内容预渲染为静态 HTML 文件。
  • 渐进式 web 应用:Gatsby 具有内置的 PWA 功能,可通过本机应用般的功能实现快速、离线就绪的 web 体验。
  • JAMstack:JavaScript、API 和 Markup 允许通过从 CDN 提供静态文件和使用 API 来构建网站。
  • 内容管理系统:充当 Gatsby 的内容后端,Gatsby 将创作的内容提取到静态站点构建进程中。

最适合通过 Gatsby 使用内容管理系统构建博客了。

性能比较

在详细介绍了每个框架之后,现在让我们来看一下它们的性能指标,例如开发服务器启动、构建时间、部署时间和首次内容绘制所需要花费的时间。

我尝试着在每个框架中创建相同的项目,这个 CSS 动画包含图像和 JSX 元素。

开发服务器

注:框架旁的数字是所花费的时间,单位为秒。

正如你在图表中看到的,ViteJS 运行服务器的速度那是相当的快,而 Gatsby 最慢。这也是 ViteJS 敢声称自己是最快框架之一的原因。

构建时间

我们发现,ViteJs 也是完成构建过程最快的。Gatsby 的构建时间倒数第一。而 NextJS 与 Gatsby 慢得半斤八两。

部署时间

所有框架都部署在 vercel 上。

Vite 最快,12 秒,NextJS 和 Gatsby 最慢。Remix 在所有指标中都保持着第二的位置。

FCP - 桌面

这次神奇了,Nextjs 和 Gatsby 最快,ViteJs 和 Remix 最慢。但话说回来,它们之间差异很小,只相差 0.1 秒。

结论

总之,虽然 Create React App(CRA)对许多开发人员来说是一个很好的起点,但现在我们有了更高级、功能更丰富的替代方案:NextJS、ViteJS、Remix 和 Gatsby ,这些框架每一个都具有针对不同用例量身定制的独特优势。

  • NextJS 非常适合用于通过无缝 Vercel 集成构建服务器渲染的应用程序。
  • ViteJS 的性能非常出色,尤其是在开发速度方面,是优先考虑快速构建时间的绝佳选择。
  • Remix 为全栈应用程序提供了强大的解决方案,专注于高级路由、服务器端渲染和丰富的用户体验。
  • Gatsby 仍然是静态站点生成的有力竞争者,尤其是对于受益于内置性能优化和 PWA 功能的内容密集型站点。

总而言之,框架的选择取决于特定的项目需求,取决于你需要性能、服务器端渲染、易于部署还是全栈功能。

从 CRA 转向这些现代替代方案可以大大增强开发体验,加速收获项目成果。

希望这篇文章对大家有所帮助。编码快乐!

END


热门推荐

当对象遇上代码:JavaScript 中的浪漫邂逅

JavaScript 性能优化全家桶:6 个方面 9 点建议

3.40秒到231.84毫秒,我的前端性能瓶颈分析全流程

2024 年前端框架大更新

前端新世界
关注前端技术,分享互联网热点
 最新文章