Next.js製の個人ブログのページ生成タイミング
今のところこんな感じでいいかなと思っています。
- ページの更新にはOn-demand Revalidationを使う
- getStaticPropsのrevalidateは有効にしない
- getStaticPathsで記事全ページを予め生成する
- next/linkのprefetchはtrueにする
ページの更新には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の中身)を取ってきても問題がないのです。