Pular para o conteúdoPedro Farbo

React Server Components: O Futuro do React

Entenda como React Server Components revolucionam o desenvolvimento web, melhorando performance e experiência do desenvolvedor.

Este conteúdo é gratuito! Ajude a manter o projeto no ar.

PIX:0737160d-e98f-4a65-8392-5dba70e7ff3e

React Server Components (RSC) representam uma mudança paradigmática na forma como construímos aplicações React. Vamos explorar como eles funcionam e por que são importantes.

O Problema que RSC Resolve

Tradicionalmente, aplicações React têm dois problemas principais:

  1. Bundle size: Todo o código JavaScript precisa ser enviado ao cliente
  2. Cascata de requisições: Dados são buscados após o JavaScript carregar

Como Funciona

tsx
// Este componente roda APENAS no servidorasync function BlogPosts() {  // Podemos usar async/await diretamente!  const posts = await db.posts.findMany();   return (    <ul>      {posts.map(post => (        <li key={post.id}>          <h2>{post.title}</h2>          <p>{post.excerpt}</p>        </li>      ))}    </ul>  );} // Podemos combinar com Client Components'use client';function LikeButton({ postId }) {  const [likes, setLikes] = useState(0);   return (    <button onClick={() => setLikes(l => l + 1)}>      ❤️ {likes}    </button>  );}

Benefícios Principais

1. Melhor Performance

  • Zero JavaScript para componentes do servidor
  • Streaming de HTML progressivo
  • Menos dados transferidos

2. Acesso Direto a Recursos

tsx
// Acesso direto ao banco de dadosasync function ProductDetails({ id }) {  const product = await prisma.product.findUnique({    where: { id }  });   return (    <div>      <h1>{product.name}</h1>      <p>{product.description}</p>    </div>  );}

3. Melhor DX (Developer Experience)

  • Colocação de dados perto de onde são usados
  • Menos boilerplate para data fetching
  • TypeScript end-to-end

Quando Usar Cada Tipo

Server ComponentsClient Components
Buscar dadosInteratividade
Acessar backenduseState, useEffect
Conteúdo estáticoEvent listeners
Componentes grandesAnimações

Migrando Gradualmente

tsx
// Componente existente (Client)'use client';function OldComponent() {  const [data, setData] = useState(null);   useEffect(() => {    fetch('/api/data').then(r => r.json()).then(setData);  }, []);   return <div>{data?.name}</div>;} // Nova versão (Server)async function NewComponent() {  const data = await fetch('https://api.example.com/data');  return <div>{data.name}</div>;}

Conclusão

React Server Components são o futuro do React. Eles combinam o melhor dos dois mundos: a interatividade do React com a performance do servidor.

Frameworks como Next.js 14+ já suportam RSC por padrão. É hora de começar a explorar essa nova forma de construir aplicações.

PF
Sobre o autor

Pedro Farbo

Platform Engineering Lead & Solutions Architect com +10 anos de experiência. CEO da Farbo TSC. Especialista em Microserviços, Kong, Backstage e Cloud.

Gostou do conteúdo? Sua contribuição ajuda a manter tudo online e gratuito!

PIX:0737160d-e98f-4a65-8392-5dba70e7ff3e