我需要从客户端获取数据,所以我使用了官方文档中建议的路由处理程序。我的问题是: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();
1条答案
按热度按时间vpfxa7rd1#
是的,当前的Next.js V13文档指出,默认情况下
fetch()
本身会缓存。它在服务器的路由处理程序中使用的事实不应该影响这一点。缓存存储数据,因此不需要在每次请求时都从数据源重新获取数据。
默认情况下,Next.js会自动将
fetch
的返回值缓存在服务器上的Data Cache中。这意味着可以在构建时或请求时获取数据,缓存数据,并在每次数据请求时重用数据。参考:https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#caching-data