如何比较 NextJS 和 Create-React-App 这两个工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0anxspv-1612346030116)(https://pro.qiuzhi99.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBWHM9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19–402751b512aab646d7af5c19f07c947f3c7ca392/image.png)]

翻译自 Malcolm Laing

原文:https://medium.com/frontend-digest/whats-the-difference-between-nextjs-and-create-react-app-11b55650a612

应该为你的应用选择哪个工具呢?

在 2021 年创建新的React项目时,有两个明确的选择:NextJSCreate-React-AppGatsby 已经失宠了。

由于大规模构建缓慢,NextJS成为更好的静态站点生成器。

让我们回顾一下 NextJSCreate-React-App的优缺点,我们还将介绍哪些用例和场景更适合其中一个。

Create-React-App

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pLiBYyGI-1612346030119)(https://pro.qiuzhi99.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBWHc9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19–6e5477e738c1a3fad93a440edd5e3499304a8f96/image.png)]

Create-React-App是一个脚手架,它使我们能够为我们创建一个新的React应用程序。它将 webpack 和 babel 封装在一起,组成一个新的脚本工具 react-scripts 来管理整个应用,这样会减少很多复杂式,还有学习成本。

这意味着更新那些 “隐藏的” 依赖关系是一件容易的事。等待新版本的react脚本,然后进行更新。无需随意修复webpack配置的重大更改。

使用Create-React-App的优势

比较自由

欢迎您使用任何您喜欢的库,没有规则或建议,您可以使用任何您喜欢的路由库。

在客户端 render (渲染)

由于 Create-React-Apps 在客户端渲染,因此部署非常容易。

您可以将应用程序托管在任何文件主机上,如s3。客户端渲染的应用程序更易于使用和部署。

Create-React-App的缺点

很难定制。

如果您需要自定义Webpack配置,您唯一的选择是使用第三方工具,如craco或 eject(弹出,它本身提供的功能)。

一旦被弹出(eject),你就失去了使用Create-React-App的大部分好处。

抽象了复杂性。

如果你要做 Create-React-App 支持的事情,它可以工作得很好,否则会很复杂。

因为它通过隐藏babel和webpack 配置的复杂性,以致于 Create-React-App 可以轻松上手。

但是它阻止开发人员更多地了解这些重要工具是如何工作的。

对搜索引擎优化不好

由于它在客户端提渲染,它与搜索引擎优化作斗争,不应该用于电子商务或营销工作。

NextJS

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-msaY18xn-1612346030120)(https://pro.qiuzhi99.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBWDA9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19–fc872b71ced08b98005a69a9b266ba04ed4fe11d/image.png)]

将 NextJS 与 Create-React-App 进行比较几乎是不公平的,因为 使用 NextJS 的开发者要多得多。

因为 CRA 只是一个脚手架工具,但是 Nextjs 是一个构建 React 应用的框架。

开箱即用,它为您提供服务器端渲染、静态站点生成、无服务器功能等等。

它是一个工具箱,为您提供创建高性能web应用程序所需的一切。

使用NextJS的优势

快速。

由于服务器端渲染和静态站点生成,NextJS应用程序飞速发展。

为我们的应用进行许多性能优化,将性能作为默认设置。

它易于部署。

Vercel (NextJS背后的公司) 使部署全栈React应用程序变得容易。

只需点击几下,您就可以建立一个专业的部署管道。这包括预览部署和生产部署。

它为我们提供了API路由。

NextJS为我们提供了一种在应用程序中构建api的快速简便的方法。

如果您的应用程序使用第三方API,您通常需要自己的API来代理请求并对令牌保密,NextJS的API路由非常适合此用例。

易于定制。

NextJS允许我们自定义babel或webpack配置,添加webpack加载器或babel插件很容易。

使用NextJS的缺点

很固执

NextJS中只有一种处理路由的方法,您不能自定义它。

NextJS仅限于其基于文件的路由器,并且动态路由仅在与NodeJS服务器一起使用时才可能。

根据应用场合应当如何选择呢?

何时使用NextJS

当构建落地页面时

NextJS在制作落地页面和其他营销材料方面大放异彩。

当搜索引擎优化重要时。

在创建电子商务网站时,搜索引擎优化比以往任何时候都更加重要。

由于服务器端渲染,NextJS在这个技术大放异彩。

当建立这种网站时。

在服务器上渲染我们的应用程序可以减轻客户端渲染的负担。

对于使用较慢设备的用户,这可能导致更快的加载时间。

何时使用Create-React-App

构建后台应用时

如果您的应用程序仅对经过身份验证的用户可用,那么它将失去服务器端渲染的大部分好处。

对于此用例,客户端渲染的应用程序运行良好,并且更易于托管且更便宜。

构建 web 应用程序时。

Web应用程序通常从服务器端渲染中获益较少。

它们通常被重复使用的用户使用,我们可以使用缓存为它们提供闪电般的加载时间,而无需SSR的成本或麻烦。

其他精彩文章

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员随风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值