app router에서 `fetch`를 쓰지 않을 경우 cache 동작2023. 6. 24.
tl;dr
되긴 됨
Detail
fetch를 쓰지 않을 경우 Default Caching Behavior를 따르거나 Segment Cache Configuration를 따르게 됨.
Default Caching Behavior
If the segment is static (default), the output of the request will be cached and revalidated (if configured) alongside the rest of the segment. If the segment is dynamic, the output of the request will not be cached and will be re-fetched on every request when the segment is rendered.
Segment Cache Config
As a temporary solution, until the caching behavior of third-party queries can be configured, you can use segment configuration to customize the cache behavior of the entire segment.
like:
// app/page.tsx
import prisma from './lib/prisma'
export const revalidate = 3600 // revalidate every hour
async function getPosts() {
const posts = await prisma.post.findMany()
return posts
}
export default async function Page() {
const posts = await getPosts()
// ...
}
// app/page.tsx
import prisma from './lib/prisma'
export const revalidate = 3600 // revalidate every hour
async function getPosts() {
const posts = await prisma.post.findMany()
return posts
}
export default async function Page() {
const posts = await getPosts()
// ...
}