【问题标题】:Is it possible to use getStaticProps and getStaticPath in a page component where you use dynamic routing but you don't know the id's yet是否可以在使用动态路由但不知道 id 的页面组件中使用 getStaticProps 和 getStaticPath
【发布时间】:2022-01-26 16:22:06
【问题描述】:

所以基本上我有一个完整的 SSG 应用程序,我无法在构建时到达后端,并且每个数据都是权限和用户特定的,因此我无法在 getStaticPath 方法中指定我必须在动态路由中使用的路径如果我想使用 getStaticProps 组件。我尝试使用后备“阻塞”但导致错误:无法导出在getStaticPaths 中启用fallback 的页面。我真的很想在该页面上使用 getStaticProps,以便提高性能。

【问题讨论】:

  • fallback 属性不受next export 支持:nextjs.org/docs/advanced-features/…。如果在构建时无法获取数据,您有两种选择:1) 在客户端获取数据,而不是使用getStaticProps; 2) 不要使用next export,而是使用next start
  • 是的,我同时想通了,你是完全正确的,谢谢你的回答。

标签: reactjs typescript next.js


【解决方案1】:

我无法在构建时到达后端,并且每个数据都是权限和用户特定

您描述的是getServerSideProps,您的网站不是 SSG。

【讨论】:

  • 我不想计算每个请求的数据,因为它是完全静态的,并且前端不会仅使用导出的静态文件运行前端服务器。
  • @MárkWerner 我想我明白你在说什么。您根本不需要使用数据获取方法。只需制作一个尽可能静态呈现的“app shell”样式页面,但让它在useEffectcomponentDidMount 中获取用户特定的API 数据并完全呈现在客户端。他们在《盖茨比》中经常这样做,那里根本没有服务器
【解决方案2】:

根据您的情况,您需要使用 getServerSideprops 并且为了优化性能,您可以在服务器端 api 调用上使用某种缓存,例如您可以使用 react 查询并将其与前端水合,这将提高您的性能。

React query docs with next js SSR

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2020-10-18
    • 2020-09-20
    • 1970-01-01
    • 2020-05-24
    • 2022-07-27
    • 2021-05-22
    • 1970-01-01
    相关资源
    最近更新 更多