02. cacheLife() プロファイル
cacheLife()を使ってキャッシュの有効期限を制御する方法を学びましょう。
プリセットプロファイル
import { cacheLife } from "next/cache";
async function getData() {
"use cache";
cacheLife("hours"); // プリセット: seconds, minutes, hours, days, weeks, max
return await fetchData();
}seconds プロファイル
minutes プロファイル
hours プロファイル
利用可能なプリセット
カスタムプロファイル(インライン)
import { cacheLife } from "next/cache";
async function getData() {
"use cache";
cacheLife({
stale: 30, // 30秒後にstaleになる
revalidate: 60, // 60秒後に再検証開始
expire: 180, // 180秒後に完全に期限切れ
});
return await fetchData();
}カスタム設定の結果
カスタムプロファイルのパラメータ
💡 stale-while-revalidate パターン
next.config.tsでのプロファイル定義
// next.config.ts
export default {
experimental: {
cacheLife: {
// カスタムプロファイルを定義
frequent: {
stale: 10,
revalidate: 30,
expire: 60,
},
},
},
};
// 使用例
async function getData() {
"use cache";
cacheLife("frequent"); // 定義したプロファイルを使用
return await fetchData();
}使用例
✅ ベストプラクティス
次のステップ