Next.js:在路由处理程序中缓存fetch()响应

pkwftd7m  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(163)

我正在阅读Next.js文档,它说:
在路由处理程序中,获取请求不会被记住,因为路由处理程序不是React组件树的一部分。
这是否意味着fetch()的响应在路由处理程序中被调用时不会被缓存?
我很困惑,因为还有一句话是这样说的:
使用POST方法的fetch请求也会被自动缓存。除非它在使用POST方法的路由器中,否则它不会被缓存。
第二句话听起来像是如果在GET路由处理程序中调用fetch(),则会缓存它的响应。
那么,fetch()是否缓存在GET路由处理程序中?

sxissh06

sxissh061#

根据https://nextjs.org/docs/app/building-your-application/caching#data-cache,
如果你看一下图形,有两层缓存,一层在React的渲染端,这是内存缓存,另一层在Next.js端,这是持久化的数据缓存。路由处理程序不会将其存储在内存中,因为在该环境中没有React来控制内存缓存,但它会将其存储在数据缓存中,由Nextjs控制。

相关问题