Next.js 13是否缓存从路由处理程序获取的数据?

f2uvfpb9  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(201)

我需要从客户端获取数据,所以我使用了官方文档中建议的路由处理程序。我的问题是:Next.js 13是否缓存从路由处理程序获取的数据,以便服务器不会在每次调用API时获取相同的数据?
代码示例:

export async function GET() {
  const response = await fetch('https://api.example.com/users');
  const users = await response.json();

  return new Response(JSON.stringify(users));
}

我从客户端调用这个路由处理程序,如下所示:

const users = await fetch('/api/users');
const jsonData = await users.json();
vpfxa7rd

vpfxa7rd1#

是的,当前的Next.js V13文档指出,默认情况下fetch()本身会缓存。它在服务器的路由处理程序中使用的事实不应该影响这一点。
缓存存储数据,因此不需要在每次请求时都从数据源重新获取数据。
默认情况下,Next.js会自动将fetch的返回值缓存在服务器上的Data Cache中。这意味着可以在构建时或请求时获取数据,缓存数据,并在每次数据请求时重用数据。

// 'force-cache' is the default, and can be omitted
fetch('https://...', { cache: 'force-cache' }) ```

参考:https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#caching-data

相关问题