V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iMboya
V2EX  ›  React

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

  •  
  •   iMboya · 340 天前 · 1216 次点击
    这是一个创建于 340 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    4 条回复    2023-12-10 00:50:30 +08:00
    vlgs
        1
    vlgs  
       340 天前   ❤️ 1
    不用担心。会自动去重。文档 fetch 部分有说明。另外 vercel blog 有一篇讲解可以看下 https://vercel.com/blog/how-react-18-improves-application-performance#data-fetching
    vlgs
        2
    vlgs  
       340 天前
    如果想进行数据获取 再传给两个方法可以在父组件获取,然后传给 包含这个元数据的子组件。不过没有必要,直接在需要获取的地方以正确的方式获取即可
    iMboya
        3
    iMboya  
    OP
       340 天前
    @vlgs 我看到这个数据去重的说法了,但我看 api 这边确实是有多次访问记录,并没有真的去重。
    iMboya
        4
    iMboya  
    OP
       340 天前
    @vlgs 刚刚又仔细看了一下官方那个博客的内容,发现官方在 fetch 的时候不是把参数放到 options.body 中,而是直接在 url 后边拼接了参数发起请求。我也这样尝试之后,终于是达到了和官方效果一样的:可以只发起一次重复请求了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5544 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:43 · PVG 14:43 · LAX 22:43 · JFK 01:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.