unstable_noStore

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

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

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

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

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

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

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

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

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

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

ВерсияИзменения
v14.0.0Добавлена функция unstable_noStore.