Heim  >  Artikel  >  Web-Frontend  >  Wie kann verhindert werden, dass API-Endpunktdaten in Next.js zwischengespeichert werden?

Wie kann verhindert werden, dass API-Endpunktdaten in Next.js zwischengespeichert werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 12:34:29401Durchsuche

How to Prevent API Endpoint Data From Being Cached in Next.js?

So verhindern Sie, dass API-Endpunktdaten in Next.js zwischengespeichert werden

Next.js v13.2 verwendet ein neues App-Verzeichnis mit Route Handler. In der Produktion speichert das Framework automatisch Daten zwischen, die von API-Endpunkten und Serverkomponenten abgerufen werden. Dies kann zu Inkonsistenzen führen, wenn die Backend-Daten aktualisiert werden.

Lösung 1: Abrufoptionen ändern

Um das Caching für bestimmte Abrufabfragen zu deaktivieren, hängen Sie Optionen zur erneuten Validierung oder zum Cache an die fetch()-Funktion:

<code class="js">fetch('https://...', { next: { revalidate: 10 } }); // revalidate every 10 seconds
fetch('https://...', { cache: 'no-store' }); // no caching</code>

Lösung 2: Routensegmentkonfiguration verwenden

Zur Verwendung mit anderen Bibliotheken (z. B. Axios, ORM) oder für Per- Um die Einstellungen für den Routensegment-Cache zu ändern, sollten Sie die Verwendung der Routensegmentkonfiguration in Betracht ziehen:

<code class="js">// layout.js, page.js, or route.js

import prisma from './lib/prisma';

/*
  Force dynamic behavior, there are more options available depending on your requirement.
*/
export const dynamic = "force-dynamic";

async function getPosts() {
  const posts = await prisma.post.findMany();
  return posts;
}

export default async function Page() {
  const posts = await getPosts();
  // ...
}</code>

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass API-Endpunktdaten in Next.js zwischengespeichert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn