使用 nextjs 'catch all' 路由获取数据

Posted

技术标签:

【中文标题】使用 nextjs \'catch all\' 路由获取数据【英文标题】:Data fetching with nextjs 'catch all' routes使用 nextjs 'catch all' 路由获取数据 【发布时间】:2021-02-18 03:24:04 【问题描述】:

使用 nextjs 10,您可以拥有一条包罗万象的路线,类似于 [...id].tsx。这个想法是这将允许动态页面。所以它应该匹配/example/example/new/example/new/latest等。

我面临的问题是特定匹配的路线(例如/example/new)可能需要额外的数据才能正确呈现。看到我的pages 文件夹中只有一个文件,我只能访问一个getStaticProps 电话。为所有可能的路线获取所有可能的数据似乎很浪费。

在组件级别获取服务器端数据将解决他的问题,但这似乎不是 nextjs 中支持的功能

有没有推荐的解决方法?基于getStaticProps 中的上下文的条件数据获取? ????

【问题讨论】:

【参考方案1】:

您应该在哪里获取数据取决于数据的性质。此外,当用户需要数据时。您可以使用getStaticPropsgetServerSideProps 或在客户端获取数据。请参阅documentation 了解这些方法之间的差异。

【讨论】:

以上是关于使用 nextjs 'catch all' 路由获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Nextjs 中使用 getServerSideProps 进行动态路由

使用 nextjs 自定义路由?

Amazon CloudFront 中的 NextJS 动态路由

无法使用 NextJS 9 的 API 路由设置 cookie

Redux 商店使用 nextJS 自行重置路由更改

如何在 NextJS 中为 getStaticProps 导入 API 路由?