我正在阅读Next.js文档,它说:
在路由处理程序中,获取请求不会被记住,因为路由处理程序不是React组件树的一部分。
这是否意味着fetch()
的响应在路由处理程序中被调用时不会被缓存?
我很困惑,因为还有一句话是这样说的:
使用POST
方法的fetch
请求也会被自动缓存。除非它在使用POST
方法的路由器中,否则它不会被缓存。
第二句话听起来像是如果在GET
路由处理程序中调用fetch()
,则会缓存它的响应。
那么,fetch()
是否缓存在GET
路由处理程序中?
1条答案
按热度按时间sxissh061#
根据https://nextjs.org/docs/app/building-your-application/caching#data-cache,
如果你看一下图形,有两层缓存,一层在React的渲染端,这是内存缓存,另一层在Next.js端,这是持久化的数据缓存。路由处理程序不会将其存储在内存中,因为在该环境中没有React来控制内存缓存,但它会将其存储在数据缓存中,由Nextjs控制。