我试图弄清楚 NextJs 和 Create React App 之间的区别。我知道在使用 ReactJs 开发我们的前端应用程序时,两者都是为了让我们的生活更轻松。
在谷歌上浏览了一些文章后,我发现主要的区别是
NextJs 提供服务器端渲染(SSR),而 Create React App 提供客户端渲染(CSR),而 SSR 提高了应用程序加载的性能。
但是从开发的角度来看其他参数呢?
使用 NextJS 或 CRA 开发的 Web App 的可维护性和可扩展性?
Typescript 和 React Hooks/Redux 支持?
或者,如果我进行了错误的比较,您甚至可以指导我?
原文由 DevLoverUmar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我使用过 NextJs 和 CRA。这两个框架都可用于快速入门并提供良好的开发人员体验。但是,这两个都有用例,其中任何一个都更好。我将尝试根据其中一些因素对它们进行比较。随意提出带有附加点或评论的编辑
服务器端渲染
税务局Next.js CRA 不支持开箱即用的 SSR。
但是,您仍然可以对其进行配置。
使用您喜欢的服务器和配置设置 SSR 需要更多的努力。开发团队没有计划在不久的将来支持此功能。他们为此用例 建议了其他工具。 NextJs 有 不同的 SSR 类型。它支持开箱即用的 SSR。
\* 静态生成:在构建时获取数据。这最适合博客或静态网站等用例
\* 服务器端渲染:为每个请求获取数据并渲染。当您需要为不同的用户提供不同的视图时,您必须这样做。
可配置性
我认为这是这些工具非常不同的地方,您的决定可能取决于这个因素
税务局Next.js Create React App 不会给您留下太多配置空间。
webpack config 之类的配置不能更改,除非
您偏离了正常的 CRA 方式(弹出、重写、重新布线、craco)。
基本上,您必须使用中配置的内容
react-scripts
这是CRA的核心。几乎所有东西都是可 配置 的。如果您检查示例 NextJs 模板,您可以看到类似的文件
babelrc
,jest.config
,eslintrc
等您可以配置。
可维护性
税务局Next.js CRA 非常有主见。
如果您不断更新 CRA 的版本,维护起来并不难。 NextJs 也维护得很好。他们发布定期更新。
打字稿
税务局Next.js支持开箱即用。您可以使用 typescript 初始化 CRA 应用程序
npx create-react-app my-app --template typescript
支持开箱即用的打字稿。从
touch tsconfig.json
的 typescript 配置开始挂钩支持
CRA 和 NextJs 的最新版本都安装了支持钩子的 React 版本。您还可以轻松升级到最新版本
Redux 支持
Redux 是一个可以与这两种工具一起使用的库。