问题答案 12026年5月26日 09:33
如何仅在NextJS站点构建期间使用getInitialProps?
在Next.js中, 是用来异步获取数据的一个方法,它可以在服务器端或客户端运行,具体取决于页面是如何被加载和访问的。如果你想要**仅在构建期间使用 **,即只在服务器端生成静态页面时获取数据,而不在客户端运行,可以采用以下策略:1. 使用 代替从 Next.js 9.3 版本开始,推荐使用 来代替 ,因为 只会在构建时运行,绝不会在客户端运行。这符合你的需求。示例:在这个例子中,数据仅在构建时从 API 获取,并作为 props 传递给页面组件。客户端不会重新获取数据。2. 明确场景和需求虽然通常不建议将 仅用于构建期间,如果确实有特殊需求,你可以在 中添加环境判断逻辑,仅在服务器端获取数据。示例:在这个例子中, 通过判断 (只有服务器端渲染时才会有 对象)来确保仅在服务器端运行数据获取逻辑。这样客户端就不会重新执行数据获取。结论建议根据项目需求使用 。这不仅满足了构建时获取数据的需求,还能保证页面的性能和优化。如果有特定情况必须使用 ,则应加入适当的环境判断逻辑以确保其只在服务器端执行。