【问题标题】:Nextjs, Gatsby for Server-side-rendering of an e-commerce website with Django at the backend? [closed]Nextjs,Gatsby 用于后端使用 Django 的电子商务网站的服务器端渲染? [关闭]
【发布时间】:2020-05-25 03:29:33
【问题描述】:

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

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

而且,是否有必要使用 Redux、React-Router 与 Nextjs 和 Gatsby

【问题讨论】:

    标签: django reactjs redux gatsby next.js


    【解决方案1】:

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

    NextJs 使用 Server-side rendering(SSR) 这对您的 SEO 有好处初始网站加载。它使用 pages 的概念,这意味着每个页面本身就是一个路由。所以你不需要单独实现 React-router。它有自己的路由机制,可以在here 中找到。

    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 中实现了一个电子商务网站,我必须承认这对我来说是一次很棒的工作经验。

    【讨论】:

    • 谢谢。是否有必要使用 Nextjs 或 Gatsby 之类的 React 框架?如果我只使用 React 库 而不使用 Nextjs 或 Gatsby 会有什么问题?为了完成生产就绪的应用程序,需要哪些工具?喜欢 (Django+Django Rest+Django-Allauth+Rest-Auth+React+Redux+Nextjs+Axios+Material-UI)
    • 您确实可以在没有 nextjs 或 gatsby 的情况下构建应用程序。这些只是像“create-react-app”这样的框架,具有更多规范,在某些情况下很方便,有时也会产生额外的瓶颈。所以,You can build the app with **React Library**,市场上有很多解决方案运行良好。
    • 仅使用 react 库时请给出一些解决方案名称。而在使用Nextjs的时候,还需要其他工具吗?
    • 我现在明白了。我强烈建议您选择 NextJS。我是根据我自己的个人经验说的,学习曲线并没有那么陡峭,你会很容易地采用它的框架,并且它具有一些附加优势,这些优势是生产就绪应用程序所带来的。
    • 这对我来说看起来不错。我强烈建议使用钩子 - useReducer、useContext 等 - 无论何时何地都可以,而不是立即使用 redux。其次,使用 use-http 包中的 useFetch,如果您将使用钩子而不是 Axios,它是用于进行 api 调用的非常高效的钩子。
    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2013-12-08
    • 1970-01-01
    • 2021-07-21
    • 2023-03-25
    • 2021-10-20
    相关资源
    最近更新 更多