Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghalang Data Titik Akhir API Daripada Dicache dalam Next.js?

Bagaimana untuk Menghalang Data Titik Akhir API Daripada Dicache dalam Next.js?

Susan Sarandon
Susan Sarandonasal
2024-11-01 12:34:29487semak imbas

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

Cara Menghalang Data Titik Akhir API Daripada Dicache dalam Next.js

Next.js v13.2 menggunakan direktori aplikasi baharu dengan Route Pengendali. Dalam pengeluaran, rangka kerja secara automatik cache data yang diambil daripada titik akhir API dan Komponen Pelayan. Ini boleh membawa kepada ketidakkonsistenan jika data hujung belakang dikemas kini.

Penyelesaian 1: Mengubah suai Pilihan Ambil

Untuk melumpuhkan caching untuk pertanyaan pengambilan tertentu, tambahkan pengesahan semula atau pilihan cache ke fungsi fetch():

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

Penyelesaian 2: Menggunakan Konfigurasi Segmen Laluan

Untuk digunakan dengan perpustakaan lain (cth., axios, ORM) atau untuk tetapan cache segmen setiap laluan, pertimbangkan untuk menggunakan Konfigurasi Segmen Laluan:

<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>

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Data Titik Akhir API Daripada Dicache dalam Next.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn