Controlul cache-ului cu fetch() – force-cache și no-store în Next.js

Extinde funcția standard nativă fetch() cu mecanisme puternice de stocare în cache la nivel de cerere HTTP.

Sintaxă
fetch(url, { cache: 'force-cache' })  // Implicit / Static (SSG)
fetch(url, { cache: 'no-store' })     // Dinamic la fiecare cerere (SSR)

Ce face Controlul cache-ului cu fetch() - force-cache și no-store

Next.js extinde API-ul global `fetch()` pentru a permite configurarea granulară a persistenței datelor în Data Cache.

Opțiunea cache: 'force-cache' (sau omisiunea în versiunile mai vechi) stochează răspunsul permanent la momentul compilării (similar cu SSG în vechiul getStaticProps).

Opțiunea cache: 'no-store' instruiește serverul să execute o cerere proaspătă la fiecare vizită a utilizatorului, garantând date în timp real (similar cu SSR în getServerSideProps).

Exemple

Exemplul 1: Interogare de date în timp real cu dezactivarea cache-ului

Asigură că datele despre prețuri sau stocuri sunt mereu proaspete.

export default async function StocProduse() {
  const raspuns = await fetch('https://api.dexblog.ro/stocuri', {
    cache: 'no-store'
  });
  const stoc = await raspuns.json();

  return <div>Stoc curent: {stoc.cantitate} bucăți</div>;
}

Ieșire în terminal

Fiecare cerere către pagină va citi cele mai recente date din API.

Greșeli frecvente

  • Folosirea ‘no-store’ pe resurse mari care se schimbă rar, provocând degradarea vitezei serverului și creșterea latenței pentru utilizatori.

Comenzi înrudite