Next.js カスタムキャッシュハンドラ
Next.js では、Pages ルーターと App ルーターのデフォルトキャッシュハンドラはファイルシステムキャッシュを使用します。これは設定不要ですが、next.config.js
の cacheHandler
フィールドを使用してキャッシュハンドラをカスタマイズできます。
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // デフォルトのメモリ内キャッシュを無効化
}
カスタムキャッシュハンドラの例を参照し、実装の詳細について学びましょう。
API リファレンス
キャッシュハンドラは以下のメソッドを実装できます: get
、set
、revalidateTag
get()
パラメータ | 型 | 説明 |
---|---|---|
key | string | キャッシュ値へのキー |
キャッシュされた値を返すか、見つからない場合は null
を返します。
set()
パラメータ | 型 | 説明 |
---|---|---|
key | string | データを保存するキー |
data | Data または null | キャッシュするデータ |
ctx | { tags: [] } | 提供されるキャッシュタグ |
Promise<void>
を返します。
revalidateTag()
パラメータ | 型 | 説明 |
---|---|---|
tag | string | 再検証するキャッシュタグ |
Promise<void>
を返します。データの再検証やrevalidateTag()
関数について詳しく学びましょう。
知っておくと便利:
revalidatePath
はキャッシュタグの便利なラッパーです。revalidatePath
を呼び出すとrevalidateTag
関数が呼び出され、パスに基づいてキャッシュキーにタグ付けするか選択できます。
バージョン履歴
バージョン | 変更内容 |
---|---|
v14.1.0 | cacheHandler が安定版としてリネーム |
v13.4.0 | incrementalCacheHandlerPath (実験的) が revalidateTag をサポート |
v13.4.0 | incrementalCacheHandlerPath (実験的) がスタンドアロン出力をサポート |
v12.2.0 | incrementalCacheHandlerPath (実験的) が追加 |