请教一下关于 nextjs 14 中 generateMetadata 方法的问题

293 天前
 iMboya

这个方法我看文档意思是只能在页面中使用,我现在有这个问题:

比如我的页面是一个文章详情,我在渲染页面内容的同时也需要设置 meta title 为文章标题, 这个时候我目前写法是在两个方法中分别写一次 getContentInfo 的请求, 但这样有点太浪费资源了吧?

我没有在官方文档找到对应的说明,比如如何可以在页面中先进行数据请求,再把结果传给两个方法?

此前没有接触过 react 和 next.js , 如果这是个非常简单的问题,也希望大佬们能帮忙解决一下下…

1164 次点击
所在节点    React
4 条回复
vlgs
292 天前
不用担心。会自动去重。文档 fetch 部分有说明。另外 vercel blog 有一篇讲解可以看下 https://vercel.com/blog/how-react-18-improves-application-performance#data-fetching
vlgs
292 天前
如果想进行数据获取 再传给两个方法可以在父组件获取,然后传给 包含这个元数据的子组件。不过没有必要,直接在需要获取的地方以正确的方式获取即可
iMboya
292 天前
@vlgs 我看到这个数据去重的说法了,但我看 api 这边确实是有多次访问记录,并没有真的去重。
iMboya
292 天前
@vlgs 刚刚又仔细看了一下官方那个博客的内容,发现官方在 fetch 的时候不是把参数放到 options.body 中,而是直接在 url 后边拼接了参数发起请求。我也这样尝试之后,终于是达到了和官方效果一样的:可以只发起一次重复请求了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/998988

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX