unstable_cache
警告: このAPIは安定版リリース時に
use cache
に置き換えられます。
unstable_cache
を使用すると、データベースクエリなどの高コストな操作の結果をキャッシュし、複数のリクエスト間で再利用できます。
知っておくと便利:
headers
やcookies
などの動的データソースへのアクセスはキャッシュスコープ内ではサポートされていません。キャッシュされた関数内でこのデータが必要な場合は、キャッシュ関数の外部でheaders
を使用し、必要な動的データを引数として渡してください。- このAPIはNext.jsの組み込みデータキャッシュを使用して、リクエストやデプロイを跨いで結果を永続化します。
パラメータ
fetchData
: キャッシュしたいデータを取得する非同期関数。Promise
を返す関数である必要があります。keyParts
: キャッシュの識別をさらに追加するキーの配列。デフォルトでは、unstable_cache
は引数と関数の文字列化バージョンをキャッシュキーとして使用します。ほとんどの場合オプションですが、パラメータとして渡さずに外部変数を使用する場合に必要です。ただし、パラメータとして渡さない場合、関数内で使用されるクロージャを追加することが重要です。options
: キャッシュの動作を制御するオブジェクト。以下のプロパティを含めることができます:tags
: キャッシュ無効化を制御するために使用できるタグの配列。Next.jsはこれを関数の一意識別には使用しません。revalidate
: キャッシュを再検証するまでの秒数。省略するかfalse
を渡すと、無期限にキャッシュされるか、一致するrevalidateTag()
またはrevalidatePath()
メソッドが呼び出されるまでキャッシュされます。
戻り値
unstable_cache
は、呼び出されるとキャッシュされたデータに解決されるPromiseを返す関数を返します。データがキャッシュにない場合、提供された関数が呼び出され、その結果がキャッシュされて返されます。
例
バージョン履歴
バージョン | 変更内容 |
---|---|
v14.0.0 | unstable_cache が導入されました。 |