Skip to content
App Router...Functionsunstable_noStore

unstable_noStore

This API is currently unstable and subject to change.

unstable_noStore can be used to declaratively opt out of static rendering and indicate a particular Server Component should not be cached.

import { unstable_noStore as noStore } from 'next/cache';
 
export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

Good to know:

  • unstable_noStore is equivalent to cache: 'no-store' on a fetch
  • unstable_noStore is preferred over export const dynamic = 'force-dynamic' as it is more granular and can be used on a per-component basis
  • Using unstable_noStore inside unstable_cache will not opt out of static generation. Instead, it will defer to the cache configuration to determine whether to cache the result or not.

Usage

If you prefer not to pass additional options to fetch, like cache: 'no-store', next: { revalidate: 0 } or in cases where fetch is not available, you can use noStore() as a replacement for all of these use cases.

import { unstable_noStore as noStore } from 'next/cache';
 
export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

Version History

VersionChanges
v14.0.0unstable_noStore introduced.