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

Next.js中仅渲染无props/动态数据的静态JSX时,getStaticProps是否生效?

关于Next.js纯静态页面使用getStaticProps的问题

完全可以照常预渲染并交付给客户端,哪怕getStaticProps不返回任何props,Next.js依然会正常执行静态生成(SSG)流程。

核心逻辑说明

getStaticProps的核心作用之一是触发页面的静态生成——只要你的页面组件导出了这个异步函数,Next.js就会在构建阶段预渲染该页面为完整的HTML文件,不管函数内部是否获取数据、是否返回props。即使返回空的props对象,预渲染流程也不受影响。

示例代码验证

比如一个纯静态页面:

export default function StaticPage() {
  return <h1>这是纯静态内容</h1>;
}

export async function getStaticProps() {
  // 即使不返回props(或返回空对象),依然会触发静态预渲染
  return { props: {} };
}

确认是否正常工作的方法

  1. 执行next build构建项目,查看.next/server/pages目录下对应页面的文件,会生成对应的.html和.json文件(.json内容为空,但存在)。
  2. 启动服务next start,访问页面后右键查看页面源代码,如果能直接看到渲染好的<h1>这是纯静态内容</h1>,说明预渲染已经成功完成,客户端收到的是完整的静态HTML。

额外补充

如果页面完全没有服务端数据需求,其实可以不用写getStaticProps——Next.js默认会对纯静态页面自动执行静态生成。但如果显式写了getStaticProps(哪怕返回空props),也不会有任何问题,只是组件会接收到一个空的props对象而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:15:35