Bagaimana untuk Mengelakkan Isu Caching dalam Titik Akhir API Next.js 13.2?

DDD
Lepaskan: 2024-11-04 04:50:01
asal
646 orang telah melayarinya

How to Avoid Caching Issues in Next.js 13.2 API Endpoints?

Cara Menyelesaikan Isu Caching Data dalam Titik Akhir API Next.js 13.2

Apabila menggunakan aplikasi Next.js dengan titik akhir API yang mengambil data daripada sumber luaran, pembangun mungkin menghadapi isu di mana data cache dipaparkan secara konsisten, tanpa mengira perubahan yang dibuat pada sumber data asas. Tingkah laku ini boleh dikaitkan dengan mekanisme caching Next.js untuk Laluan API dan Komponen Pelayan dalam persekitaran pengeluaran.

Untuk menyelesaikan isu caching ini, Next.js menyediakan beberapa pilihan untuk mengawal gelagat caching.

Menggunakan Fetch() dengan Pilihan Pengesahan Semula atau Cache

Jika menggunakan fetch() untuk pengambilan data, pembangun boleh menentukan pilihan pengesahan semula atau cache untuk mengawal tingkah laku caching bagi setiap pertanyaan:

<code class="js">fetch('https://...', { next: { revalidate: 10 } });
// OR
fetch('https://...', { cache: 'no-store' });</code>
Salin selepas log masuk

Pilihan pengesahan semula menentukan bilangan saat sebelum cache diambil semula. Pilihan cache membolehkan kawalan yang lebih berbutir, dengan nilai seperti no-store menghalang penyemak imbas daripada menyimpan cache respons.

Menggunakan Konfigurasi Segmen Laluan untuk Peraturan Caching Tersuai

Untuk kes di mana fetch() digunakan dengan peraturan caching tersuai atau apabila menggunakan perpustakaan seperti axios atau berinteraksi secara langsung dengan pangkalan data, pembangun boleh menggunakan Konfigurasi Segmen Laluan. Konfigurasi Segmen Laluan membenarkan untuk mentakrifkan gelagat caching berdasarkan setiap laluan:

<code class="js">// layout.js OR page.js OR route.js ??

import prisma from "./lib/prisma";

/*
  Bleow option is when you want no caching at all, there are more options
  on the doc depending on your needs. 
*/
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>
Salin selepas log masuk

Dengan menetapkan dinamik kepada "force-dynamic", Next.js melumpuhkan caching untuk laluan yang ditentukan. Pembangun boleh meneroka pilihan tambahan berdasarkan keperluan caching khusus mereka, seperti yang didokumenkan dalam dokumentasi Next.js.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Isu Caching dalam Titik Akhir API Next.js 13.2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!