Next.js 盖茨比或NextJS,用于ecommence综合场地

Next.js 盖茨比或NextJS,用于ecommence综合场地,next.js,gatsby,Next.js,Gatsby,本人有以下申请: docker中带有Restful API的magento2电子商务站点 docker中的一些nodejs微服务Restful API 我有个问题,如果我想开发一个ecommence+用户门户前端站点,我应该选择哪个框架?NEXTJS还是盖茨比 鉴于: 我有超过30000个用户 我需要为10多个地区提供服务,而且可能会不断增加 我需要为10多个国家提供服务,而且可能会不断增加,每个国家可能会有许多不同的本地化设置 我有10多家分店,代表10个国家,每个分店都有20多种产品,

本人有以下申请:

  • docker中带有Restful API的magento2电子商务站点
  • docker中的一些nodejs微服务Restful API
我有个问题,如果我想开发一个ecommence+用户门户前端站点,我应该选择哪个框架?NEXTJS还是盖茨比

鉴于:

  • 我有超过30000个用户
  • 我需要为10多个地区提供服务,而且可能会不断增加
  • 我需要为10多个国家提供服务,而且可能会不断增加,每个国家可能会有许多不同的本地化设置
  • 我有10多家分店,代表10个国家,每个分店都有20多种产品,而且可能会越来越多

盖茨比适用于没有大量动态数据的静态网站。如果你正在构建复杂级别的网站,请使用NextJs

Next.js拥有同类最佳的“开发者体验”和许多内置功能;其中一个例子是:

直观的基于页面的路由系统(支持动态路由) 预呈现,静态生成(SSG)和服务器端呈现(SSR)都支持每页 自动代码拆分以加快页面加载速度 具有优化预取的客户端路由 内置CSS和Sass支持,并支持JS库中的任何CSS 支持热模块更换的开发环境 使用无服务器函数构建API端点的API路由 完全可扩展

我不同意

有了盖茨比,站点将拥有的异步数据量、页面数或动态数据都无关紧要。最后,它是一个React站点,所有内容都已经获取和提供,因此它的速度非常快。此外,你有一堆管理你所有需求的官方插件

  • 你将能够处理一个问题
  • 包括重定向和动态路由
  • CMS通过一组多个CMS支持(、标记文件、JSON文件、自定义数据库等)获取数据
  • Lambda支持
部署或查看盖茨比网站不需要节点服务器,因为它呈现静态HTML,所以不需要任何额外的配置,只需要一个服务器,所有页面都是在构建时创建的。Next.js需要服务器端定制和呈现

此外,它的搜索引擎优化友好,您可以很容易地定制您的组件,以呈现(即使当页面已经创建)与适当的面向国家的数据

最后,这完全取决于您,但在我看来,您需要的配置更少,使用盖茨比的麻烦也更少,因为配置很少且简单

在社区方面,两者都有很大的支持,所以这是一个平局

就我个人而言,我认为Next.js目前唯一更好的选择是可伸缩性,因为Gatsby,特别是在大型项目中,将增加部署时间(最多10分钟,这并不理想),但我知道他们正在通过实施增量构建来改善这一点。我将部署时间从8分钟减少到2分钟


但我确实想知道更多,如果页面路径依赖于用户,例如
/myinbox/tom给stanley的信
,每个用户可能有不同的消息 根据用户的不同,每个收件箱可能有不同的路径

这将取决于您的代码逻辑,而不是所使用的框架。当然,你可以通过盖茨比和下一个来实现这一点。我正在和盖茨比做类似的事情,我没有任何问题。当然,有时需要后端逻辑(数据库的东西),但这是完全可行的


回答你的问题。这是一个个人的选择,你可以满足你的规格与这两个(像其他问题显示)。我会选择盖茨比,因为它更倾向于SEO(转换),如果结构良好(CMS中的数据实体等),易于维护,插件支持,并且由于上传的是
/public
编译文件夹,所以服务器配置更少(最少)

有用的文章:


感谢您的回复,但我不想要服务器,我必须在S3中部署,在NextJs中不需要服务器,您可以构建应用程序/网站,而无需创建服务器,只需制作页面和组件即可。但这不会像React应用程序一样部署在S3 bucket中,您必须配置运行它,因为它需要节点服务器我知道它需要节点服务器,但我确实想知道更多,如果页面路径取决于用户,例如/myinbox/letter from tom to stanley,每个用户的收件箱中可能有不同的消息,在我看来,每个收件箱可能有不同的路径依赖于userBTW,Serverless=没有服务器的一切,api使用lambda,前端使用s3,auth使用cognito/auth0你可以从这里了解到:实际上我也喜欢gatsby,但是,如果只部署到s3,他们在路由上有问题,假设您将在s3 bucket的一个文件夹中部署您的应用程序,并且您的路径将是/myfolder/{lang}/pages/{dynamic id}/{daynamic id},gatsby似乎对客户端路径路由有问题,并且鉴于我无法预生成lang路径