首页 > 解决方案 > Nextjs,Gatsby 用于后端使用 Django 的电子商务网站的服务器端渲染?

问题描述

我想制作一个电子商务网络应用程序,在后端我使用Django和 Django Rest Framework。我想在前端使用带有 axios 库的React、Redux 和 React-Router 。我发现这是 React 的另外两个框架,即Nextjs 和 Gatsby

现在,哪个更适合我在Nextjs 和 Gatsby之间制作电子商务 Web 应用程序?

而且,有必要使用Redux、React-Router 和 Nextjs 和 Gatsby吗?

标签: djangoreactjsreduxgatsbynext.js

解决方案


这完全取决于,您希望在应用中拥有哪些与性能相关的重要功能?我假设您对这两个框架的工作原理有基本的了解。不过,我会尽量使其简短。

NextJs使用服务器端渲染 (SSR),这对您的SEO初始站点加载有好处。它使用pages的概念,这意味着每个页面本身就是一条路线。所以你不需要单独实现 React-router。它有自己的路由机制,可以在这里找到。

Gatsby是一个静态站点生成器工具。静态站点生成器在构建时生成静态 HTML。它不使用服务器。Gatsby 使用 GraphQL,它是一种查询语言,如果您熟悉 SQL,它的工作方式非常相似。使用特殊语法,您可以在组件中描述所需的数据,然后将这些数据提供给您。

根本区别在于,NextJs 需要服务器才能运行。Gatsby 可以在没有任何服务器的情况下运行。Gatsby 只是在构建时生成纯 HTML/CSS/JS,而 NextJs 在运行时创建 HTML/CSS/JS。因此,每次有新请求进来时,它都会从服务器创建一个新的 HTML 页面。

是的, Redux实现在这些平台和其他状态管理中是一致的。虽然盖茨比需要一些插件才能开始使用它。NextJs 设置类似于 create-react-app 的设置。这完全取决于你是否想使用 redux。它有一个特定的用例。如今,您对这些用例有部分解决方案,即 contextAPI、钩子等。但是对于许多其他用例,您仍然需要 redux,这些有限的解决方案将不起作用。

所以,如果你的后端是 GraphQL,我建议你看看 Gatsby,它为前端提供了一些强大的解决方案。也就是说,如果您使用任何其他后端架构,我建议您继续使用 NextJs。我自己在 NextJs 中实现了一个电子商务网站,我必须承认这对我来说是一次很棒的工作经历。


推荐阅读