0

我开始了解有关 Jamstack 的更多信息,但我在某些方面仍然对 SSG 中的动态内容感到非常困惑

示例:我有一个像 dev.to 这样的静态博客,但我有可以交互的用户,例如给帖子点赞,这些用户还有一个私人用户页面,其中包含一些统计信息我如何选择什么是静态的,什么是静态的用nuxt动态?在每个 nuxt 教程中,我只看到人们在任何地方都使用 AsyncData,但在这种情况下,nuxt 如何知道在构建时需要进行哪些 api 调用(博客文章),以及客户端应该进行哪些 api 调用(用户头像,喜欢, ETC)?

4

1 回答 1

1

staticSSG 中可能不是最好的措辞,因为您感觉它无法在其上动态运行一些 JS,但它完全可以!
静态主要是说可以将文件托管在CDN上。更好的名称是pre-renderedbuilt ahead of time文件。主要好处是不需要依赖 Node.js 服务器。

首先,你会得到一些静态文件,然后它会变成一个完全水合的 SPA 应用程序,基本上是一个普通的 Vue 应用程序。这几乎就是 Nuxt 的全部意义所在。

如果有人在某处点击了一个赞按钮,您需要在某处发送一些 HTTP 调用来记录这个。当有人到达页面时,您的应用程序将调用外部 API(例如,用于点赞计数器),而某些内容可以保持完全相同(您的帖子的实际文本)。

如果您确实想要允许特定的私人用户页面,您需要处理 OAuth 并填充一个路径,您将在其中注入您将再次从一些外部 API 中获取的用户特定信息(几乎是 Facebook 的工作原理) .

所以,你真的不需要选择什么是静态的或动态的,因为:

  • 在部署期间生成的文件是静态的
  • 其余的都是动态的,因为它是一个通用应用程序(服务器 + 客户端组合)

至于需要在哪里完成,这取决于您如何实现它(本地或远程博客文章,即.md文件或headless CMS)+ 客户端的东西将始终在运行时。

我们需要更多详细信息,您可能需要尝试/观看有关该主题的一些教程。

我做了一个关于 NuxtNation 的演讲,也许可以看一下,以了解一些棘手的部分:Nuxt Nation 2021 - 了解 Nuxt 的难点
我还可以推荐 Debbie 的 YouTube 频道,它非常擅长解释事情:https://www .youtube.com/c/DebbieOBrien/videos

于 2021-11-18T00:41:19.280 回答