unstable_cache
warning.icon Next 15 時点でも不安定な機能なので、名前や使い方が変わるかも
fetch 以外
負荷の高いデータベースクエリなどの結果をキャッシュし、複数のリクエスト間で再利用可能にする
code:ts
import { unstable_cache } from "next/cache";
const data = unstable_cache(fetchData, keyParts, options)();
引数
fetchData: キャッシュされるデータを取得するための非同期関数
keyParts: キャッシュを一意に識別するためのキーとして用いられる文字列の配列
options: キャッシュの動作を制御するオブジェクト
e.g.
code:tsx
import { unstable_cache } from 'next/cache';
export default async function Page({ params }: { params: { userID: string } }) {
const getCachedUser = unstable_cache(
async () => {
return { id: params.userID };
},
{
revalidate: 60,
}
);
...
}