增量静态生成怎么做到首屏不白屏?
我们用 Next.js 做了个博客,文章页用了增量静态生成(ISR),但新页面首次访问时还是会白屏几秒,感觉跟 SSR 差不多。不是说 ISR 能提前生成好 HTML 吗?
我试过在 getStaticProps 里加 revalidate: 60,也预渲染了热门文章,但冷启动的新页面还是得等服务端生成。有没有办法让首屏至少显示个骨架屏或者 loading?
export async function getStaticProps({ params }) {
const post = await getPostFromCMS(params.slug);
return {
props: { post },
revalidate: 60,
};
}
router.isFallback判断是不是正在生成中,生成中就先渲染骨架屏,别等getStaticProps跑完:记得
fallback: 'blocking'或fallback: true要配着用,别漏了。