首頁  >  文章  >  web前端  >  如何防止 API 端點資料被緩存在 Next.js 中?

如何防止 API 端點資料被緩存在 Next.js 中?

Susan Sarandon
Susan Sarandon原創
2024-11-01 12:34:29401瀏覽

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

如何防止API 端點資料快取在Next.js 中

Next.js v13.2 使用帶有Route 的新應用程式目錄處理程序。在生產中,框架會自動快取從 API 端點和伺服器元件取得的資料。如果更新後端數據,這可能會導致不一致。

解決方案1:修改提取選項

要禁用特定提取查詢的緩存,請將重新驗證或緩存選項附加到fetch() 函數:

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

解決方案2:使用路由段配置

要與其他庫(例如axios、ORM)一起使用或用於每個路由段快取設置,請考慮使用路由段配置:

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

以上是如何防止 API 端點資料被緩存在 Next.js 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn