首页 > web前端 > js教程 > 正文

如何防止 API 端点数据被缓存在 Next.js 中?

Susan Sarandon
发布: 2024-11-01 12:34:29
原创
473 人浏览过

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)一起使用或用于 per-路由段缓存设置,考虑使用路由段配置:

<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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板