下一个 JS |获取静态路径
Next JS | getStaticPath
- 如果我不打算运行“下一个导出”命令,是否需要使用 getStaticPaths?
- 我可以使用 getStaticProps 在服务器端创建缓存结构并重新验证详细信息页面 (/user/1) 吗?或者除了使用 SWR 或 getServerSideRender 之外别无选择?
- 在详细信息(/user/1)页面重新获取所有数据不是多余的吗?
注意:用户详情页面可以每60秒刷新一次。即时更新并不重要。
export async function getStaticPaths() {
const res = await fetch('https://.../posts')
const posts = await res.json()
const paths = posts.map((post) => ({
params: { id: post.id },
}))
return { paths }
}
export async function getStaticProps({ params }) {
const res = await fetch(`https://.../posts/${params.id}`)
const post = await res.json()
return { props: { post } }
}
没有。 getStaticPaths 在以增量方式静态生成大量页面时很有用。
是的,在下一个 js 中,只有在使用 getStaticProps 生成静态页面时才能使用重新验证缓存策略,如下所示:
export async function getStaticProps({ params }) {
const res = await fetch(`https://.../posts/${params.id}`);
const post = await res.json();
// revalidate value is basically in seconds so here it will revalidate the
// data every 1 second only If there is an update to it .
return { props: { post } , revalidate : 1 }
}
- 您可以使用 getStaticProps 方法和 getStaticPaths 来增量生成您需要的所有页面并使用分页。
- 如果我不打算运行“下一个导出”命令,是否需要使用 getStaticPaths?
- 我可以使用 getStaticProps 在服务器端创建缓存结构并重新验证详细信息页面 (/user/1) 吗?或者除了使用 SWR 或 getServerSideRender 之外别无选择?
- 在详细信息(/user/1)页面重新获取所有数据不是多余的吗?
注意:用户详情页面可以每60秒刷新一次。即时更新并不重要。
export async function getStaticPaths() {
const res = await fetch('https://.../posts')
const posts = await res.json()
const paths = posts.map((post) => ({
params: { id: post.id },
}))
return { paths }
}
export async function getStaticProps({ params }) {
const res = await fetch(`https://.../posts/${params.id}`)
const post = await res.json()
return { props: { post } }
}
没有。 getStaticPaths 在以增量方式静态生成大量页面时很有用。
是的,在下一个 js 中,只有在使用 getStaticProps 生成静态页面时才能使用重新验证缓存策略,如下所示:
export async function getStaticProps({ params }) {
const res = await fetch(`https://.../posts/${params.id}`);
const post = await res.json();
// revalidate value is basically in seconds so here it will revalidate the
// data every 1 second only If there is an update to it .
return { props: { post } , revalidate : 1 }
}
- 您可以使用 getStaticProps 方法和 getStaticPaths 来增量生成您需要的所有页面并使用分页。