django - Nextjs,Gatsby 用于后端使用 Django 的电子商务网站的服务器端渲染?
问题描述
我想制作一个电子商务网络应用程序,在后端我使用Django和 Django Rest Framework。我想在前端使用带有 axios 库的React、Redux 和 React-Router 。我发现这是 React 的另外两个框架,即Nextjs 和 Gatsby。
现在,哪个更适合我在Nextjs 和 Gatsby之间制作电子商务 Web 应用程序?
而且,有必要使用Redux、React-Router 和 Nextjs 和 Gatsby吗?
解决方案
这完全取决于,您希望在应用中拥有哪些与性能相关的重要功能?我假设您对这两个框架的工作原理有基本的了解。不过,我会尽量使其简短。
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 中实现了一个电子商务网站,我必须承认这对我来说是一次很棒的工作经历。
推荐阅读
- flutter - AsyncSnapshot 状态始终为 connectionState.waiting
- c++ - 如何配置 Jenkins 以使用 Qt 构建解决方案?
- spring-boot - 如何在应用程序属性中设置文件位置 - Spring Boot
- vue.js - 登录成功后没有调用数据库
- c# - c# .net core 在 Windows 和 Linux 上日期格式 MMM 的区别
- c# - UserControl 中的图像使 UserControl 不可见,但使 Window 背景可见
- json - 这段代码有什么错误?我的数据没有插入到 sql server
- php - Laravel 显示资源搜索错误的列
- android - 如何制作图像并在下一页显示
- sql - 获取按接下来两个可能的发货日期分组的订单行