unstable_noStore

В версии 15 рекомендуется использовать connection вместо unstable_noStore.

Функция unstable_noStore позволяет декларативно отказаться от статического рендеринга (static rendering) и указать, что конкретный компонент не должен кэшироваться.

import { unstable_noStore as noStore } from 'next/cache';

export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

Полезно знать:

  • unstable_noStore эквивалентна параметру cache: 'no-store' в fetch
  • unstable_noStore предпочтительнее, чем export const dynamic = 'force-dynamic', так как обеспечивает более детальный контроль и может использоваться для отдельных компонентов
  • Использование unstable_noStore внутри unstable_cache не отключает статическую генерацию. Вместо этого решение о кэшировании результата будет приниматься на основе конфигурации кэша.

Использование

Если вы предпочитаете не передавать дополнительные параметры в fetch, такие как cache: 'no-store', next: { revalidate: 0 }, или в случаях, когда fetch недоступен, вы можете использовать noStore() как замену для всех этих сценариев.

import { unstable_noStore as noStore } from 'next/cache';

export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

История версий

ВерсияИзменения
v15.0.0unstable_noStore устарела в пользу connection.
v14.0.0unstable_noStore была добавлена.