有关将Gatsby用于动态应用程序的信息

时间:2018-08-03 09:49:58

标签: gatsby

我正在为我想开始使用React,Redux和SSR构建的应用程序寻找最佳入门套件。

由于很难从头开始,所以我开始研究next.js和gatsby。

实际上,我开始在两个代码中都实现了我的基本代码。

现在,在继续介绍更多“复杂”内容之前,我想更好地了解Gatsby如何以及是否支持动态网址。

我的应用应:

  1. 注册或登录用户;
  2. 为每个注册用户显示一个个人控制面板;
  3. 为每个注册用户创建一个特定的公共资料页面。

实现前2点非常容易,但是我想了解的是如何使用应该像/users/:id/:nickname这样的路由来处理页面。

我在Google上四处浏览,我发现与cron工作任务有关的怪事每隔x分钟重新构建一次应用程序(我根本不想做的事)。

然后我通过查看Gatsby文档找到了Bound Action Creators,但像往常一样理解文档100%总是很棘手:那是什么?如何以及在哪里使用?我可以在还原级别使用createPage方法吗?服务器端渲染了吗?

有人可以告诉我该产品是否可以很好地实现我上面解释的内容,也许可以在开始编写很多可能无用的代码之前链接一些示例,tut或一小段代码以帮助我理解它?

干杯。

1 个答案:

答案 0 :(得分:1)

我对next.js不熟悉,但是您可以使用Bound Action Creator从数据创建动态URL。步骤如下。

  1. 您需要GraphQL中的数据源。
  2. 您需要将数据源转换为GraphQL。如果您有GraphQL服务器,则可以使用现有的源插件gatsby-source-graphql。
  3. 您需要在gatsby-config.js中配置插件源
  4. 您需要在gatsby-node.js中配置动态URL和页面
  5. 为动态内容和URL创建模板页面。

https://github.com/jlengstorf/gatsby-with-unstructured-data/tree/using-gatsby-data-layer 这是一个使用pokemon REST API的gatsbyjs示例站点。它使用导入REST API的自定义GraphQL插件从数据创建动态URL。

https://www.gatsbyjs.org/starters/gatsby-starter-blog 它是一个状态站点,但是它使用本地文件系统作为GraphQL源。这对于了解模板和gatsby-node如何协同工作很有用。

祝你好运。