generateStaticParams 函数是 Next.js 版本 11.0.0 中引入的一项新功能,它是一个实用函数,允许您为静态生成的页面生成路由的动态部分。它可以与 getStaticPaths 结合使用,以在构建时为页面生成静态路由。
generateStaticParams 是一个实用函数,它有两个参数:
params:具有路由动态部分的对象,例如 { id: '123' }
选项:一个可选对象,带有传递给 getStaticProps 函数的选项。
它返回一个对象,该对象具有包含路由完整路径的路径属性和包含传递给 getStaticProps 函数的选项的选项属性。
使用 generateStaticParams 的一个例子是:
import { generateStaticParams } from 'next/dist/next-server/server/generate-static-params'
export async function getStaticPaths() {
const paths = [
{ params: { id: '1' } },
{ params: { id: '2' } },
{ params: { id: '3' } },
]
return {
paths,
fallback: false,
}
}
export async function getStaticProps({ params }) {
// Do something with params
const data = await fetchData(params.id)
const { path, options } = generateStaticParams({
params,
options: {
preview: true,
},
})
return {
props: {
data,
},
revalidate: 1,
path,
options,
}
}
使用此功能,您可以为页面生成动态路由并将其提供给 getStaticProps,以便可以在构建时预取数据,从而提高性能