Next.js製の個人ブログのページ生成タイミング

今のところこんな感じでいいかなと思っています。

ページの更新にはOn-demand Revalidationを使う

Next.jsプロジェクトに/api/revalidateのようなエンドポイントを実装して、そこでres.revalidateを呼ぶだけで、ページが更新できる。なんて便利なんだ。

なので、ブログの更新をバックエンドで行ったときに、Next.js側の /api/revalidate を叩いてあげれば、最新に更新されます。

getStaticPropsのrevalidateは有効にしない

上記のOn-demand Revalidationをすることで、このオプションを使う必要がなくなります。

getStaticPathsで記事全ページを予め生成する

getStaticPathsを使うと、ビルド時に生成するページを指定できます。自分のブログだとまだ50記事もいかないほどなので、バックエンドからとってきた記事idを使って、全ページビルドしてしまえばOKです。記事が増えてきてビルド時間が長くなってきたら何か工夫しないとですが、当分はこれでよさそうです。

next/linkのprefetchはtrueにする

全記事生成しておいてrevalidateもfalseにしておけば、prefetchをtrueにしておいてもバックエンドにリクエストが飛びません。なので、画面にリンクが表示された時点で遷移先のページ(記事ページpropsの中身)を取ってきても問題がないのです。