📅  最后修改于: 2023-12-03 15:06:11.158000             🧑  作者: Mango
在 Next.js 中, getStaticProps
是用于在构建时静态生成页面内容的方法。它是一个异步函数,必须在页面组件中导出,并且返回一个对象,该对象具有至少一个名为 props
的属性。
通常情况下,我们将使用 getStaticProps
从外部数据源获取数据,处理数据并将其传递给页面组件作为属性。在构建时,Next.js 将调用 getStaticProps
并将其返回的数据作为静态 HTML 直接注入到生成的页面中。
但是,如果你正在处理大量数据或需要进行复杂的计算,则可能需要启用增量式渲染( incremental static regeneration )以实现快速的页面加载和动态更新。这就是 getStaticProps
的 revalidate
选项派上用场的地方。
当 revalidate
选项被启用时,Next.js 将该页面保存为静态文件,并且在有效期过期后(在我们的示例中为 10 秒),将会在后台自动重新生成该页面。在此期间,新的数据将在后台获取并使用来更新静态文件,从而实现快速的动态更新。
下面是一个典型的使用 getStaticProps
和 revalidate
的示例:
import fetch from "fetch";
export default function MyPage({ data }) {
return (
<div>
<h1>My Page</h1>
<p>{data}</p>
</div>
);
}
export async function getStaticProps() {
const res = await fetch("https://example.com/data");
const data = await res.text();
return {
props: {
data,
},
revalidate: 10, // 10 秒后重新生成页面
};
}
尝试在实际项目中使用 getStaticProps
和 revalidate
以获得快速的动态内容更新,并了解更多使用 Next.js 构建网站的最佳实践。