Capítulo 73 de 456
Public pages mostram o mesmo conteúdo pra todo usuário (landing pages, listagens de produto, marketing) e por isso podem ser prerenderizadas e reutilizadas, reduzindo custo de servidor e acelerando carregamento.
'use cache': diretiva que transforma um componente dinâmico em cache component — se os inputs estiverem disponíveis antes da requisição, pode ser prerenderizado como um componente estático.import db from '@/db'
import { List } from '@/app/products/ui'
async function ProductList() {
'use cache'
const products = await db.product.findMany()
return <List items={products} />
}
export default async function Page() {
return (
<>
<Header />
<ProductList />
</>
)
}
'use cache' transforma um componente que faria fetch bloqueante em um cache component prerenderizável.import { Suspense } from 'react'
export default async function Page() {
return (
<>
<Suspense fallback={<PromotionSkeleton />}>
<PromotionContent />
</Suspense>
<Header />
<ProductList />
</>
)
}
<Suspense> desbloqueia a resposta via streaming, gerando PPR.<Suspense>: bloqueia a rota inteira de ser prerenderizada — Next.js emite warning (blocking-prerender-dynamic) nesse caso.next build reporta o status da rota: ○ (Static), ◐ (Partial Prerender) — use pra confirmar se a estratégia funcionou.use cache: mecanismo central usado aqui para tornar um componente dinâmico prerenderizável.