Mateus Cavalcanti28 Feb 20242 minFrontend
Next.jsPerformanceReact
React Server Components: O futuro do React
Server Components permitem renderizar parte da UI no servidor antes de enviar para o cliente. Na prática, isso reduz bundle JavaScript e melhora tempo de carregamento.
No App Router do Next.js, eles já são o padrão.
O que muda no dia a dia
- Data fetching pode acontecer direto no componente de servidor.
- Menos necessidade de
useEffectpara buscar dados iniciais. - Componentes interativos continuam no cliente com
"use client".
Exemplo simples
// Server Component
export default async function ProductsPage() {
const products = await fetch("https://api.exemplo.com/products", { cache: "no-store" }).then((r) => r.json());
return <ProductList products={products} />;
}
Quando usar Client Component
Use "use client" se você precisa de:
- estado local interativo,
- handlers de clique,
- APIs do navegador,
- animações dependentes do cliente.
Estratégia híbrida recomendada
- Renderize dados e estrutura no servidor.
- Hidrate só ilhas interativas.
- Passe props enxutas para componentes cliente.
Esse modelo costuma dar uma UI mais rápida e uma base mais sustentável para crescer.