ISR
Incremental Static Regeneration
API
ページ数が多いとビルドに時間がかかる
ビルド時のものが表示されるので、更新内容が反映されない
こんな感じ
例えば、pages/posts/index.tsxとpages/posts/[id].tsxがあるとする
どちらも静的ページ化したい
しかし、後者は数が多いため全てSSGするとbuildに時間がかかる
そこで、前者はSSGにし、後者はISRにしたとする
例えば、pages/posts/42.tsxにアクセスした時の挙動は以下の3つのいずれかになる
①pages/posts/42.tsxの静的ページがない場合は
その際に静的ページを作ってcacheする
pages/posts/42.tsxの静的ページがある場合は
②revalidate秒以内なら、その静的ページを返す
③revalidate秒以上経っていたら、
その静的ページを返し、
新たに静的ページを作り直してcacheする
①により、build時に全ページを静的ページ化しないで済む
②により、build時に生成していないページも2回目以降のアクセスではSSGの恩恵を受けられる
③により、最近の更新内容も反映される
ISRを使う
2つを指定する必要がある
もしくはgetStaticProps内にnew Date()を仕込むなどする ref