You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

疑问:Next.js中getStaticProps为何每次请求都会执行?

问题解答

你遇到的核心问题是开发环境与生产环境下getStaticProps的执行逻辑差异:

  • Next.js在开发模式(next dev)下,为了让开发者实时看到代码变更效果,会在每次页面请求时重新执行getStaticProps,所以你每次访问/words页面都会看到控制台打印内容。
  • 只有在生产模式(next build && next start)下,getStaticProps才会按照文档描述的逻辑工作:构建阶段预渲染页面,之后仅在配置revalidate触发增量静态再生,或者重新构建项目时才会执行。

另外你的代码存在一个潜在bug:axios.get是异步操作,但你没有添加await,这会导致response是Promise对象而非实际响应结果,response.data会返回undefined,正确写法如下:

export async function getStaticProps() { 
  console.log("this is my getStaticProps"); 
  const response = await axios.get("/words/get-all"); // 加上await关键字
  return { 
    props: { 
      words: response.data, 
    } 
  } 
}

内容的提问来源于stack exchange,提问作者Salvador

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:06:26