Open44
Next.jsの考え方
データフェッチ専用の層を設けることが推奨されている。
以下のような構成。
app/products/fetcher.ts
app/products/_lib/fetcher.ts
app/products/_lib/fetcher/product.ts
Static Rendering:build時やrevalidate後
Dynamic Rendering:ユーザーリクエスト時
Route Segment Configを利用してDynamic Renderingに切り替えることもできます。具体的には、page.tsxやlayout.tsxに以下どちらかを設定することでDynamic Renderingを強制できます。
// layout.tsx | page.tsx
export const dynamic = "force-dynamic";
// layout.tsx | page.tsx
export const revalidate = 0; // 1以上でStatic Rendering
キャッシュ関連の情報はチュートリアルには記載がなかった。
App Routerでは可能な限りStatic Renderingにすることが推奨されている。