0Pricing
React Academy · Aula

Componentes de servidor do React explicados

Entenda o que são RSCs, como diferem dos componentes de cliente e quando usar cada um.

Componentes de servidor do React explicados é uma aula grátis de React Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

Boas-vindas

Nesta lição, você aprenderá o que são os Componentes do Servidor do React (RSCs), como eles diferem dos componentes do cliente e quando usar cada tipo.

Os dois mundos dos componentes

O React 19 e o App Router do Next.js dividem os componentes em dois mundos: **Componentes do servidor** (renderizados no servidor, sem interatividade) e **Componentes do cliente** (renderizados tanto no servidor quanto no cliente, com estado e manipuladores de eventos).

Componentes do servidor por padrão

No App Router do Next.js, todo componente é um Componente do Servidor por padrão. Você opta pelo modo Componente do Cliente adicionando 'use client' no início do arquivo.
// Server Component (default, no directive needed)
export default async function Page() {
  const data = await fetch('/api/posts').then(r => r.json());
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Componentes do cliente

Adicione 'use client' no início de um arquivo para transformá-lo em um Componente do Cliente. Os Componentes do Cliente podem usar useState, useEffect, manipuladores de eventos e APIs do navegador.
'use client';
import { useState } from 'react';

export function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n+1)}>{n}</button>;
}

Recursos dos Componentes do Servidor

Os Componentes do Servidor podem: aguardar consultas ao banco de dados, ler o sistema de arquivos, acessar segredos do ambiente, importar pacotes grandes exclusivos do servidor e renderizar sem enviar JavaScript ao cliente.
// Fetch from DB directly in the component!
import { db } from '@/lib/db';

export default async function UserList() {
  const users = await db.select().from(usersTable);
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}

Limitações dos Componentes do Servidor

Os Componentes do Servidor CANNOT: usar useState, useEffect, manipuladores de eventos (onClick etc.), APIs do navegador (window, localStorage) ou Contexto. Esses recursos exigem 'use client'.

Compondo Componentes do Servidor e do Cliente

O padrão comum é: um Componente do Servidor busca os dados e os passa a um Componente do Cliente como propriedades. O servidor lida com os dados; o cliente lida com a interação.
// Server Component
export default async function Page() {
  const user = await getUser();
  return <ProfileEditor user={user} />; // client component
}

// Client Component (separate file)
'use client';
export function ProfileEditor({ user }) {
  const [name, setName] = useState(user.name);
  return <input value={name} onChange={e => setName(e.target.value)} />;
}

A regra do limite entre cliente e servidor

Depois que você marca um arquivo com 'use client', todos os componentes importados por ele também são tratados como componentes do cliente. O limite entre servidor e cliente funciona no nível do arquivo.

Zero JavaScript para Componentes do Servidor

Os Componentes do Servidor são renderizados como HTML no servidor. O código dos componentes NEVER é enviado ao navegador. Isso reduz significativamente o tamanho do pacote JavaScript.

Componentes do Servidor versus SSR

O SSR tradicional renderiza uma página inteira como HTML, mas envia todo o código dos componentes ao cliente para hidratação. Os Componentes do Servidor nunca enviam seu código ao cliente — apenas sua saída renderizada.

Verificação rápida

Qual diretiva você adiciona a um arquivo para transformá-lo em um Componente do Cliente do React no App Router do Next.js?

Recapitulação

Os Componentes do Servidor são executados no servidor, podem acessar bancos de dados e segredos e não enviam JS ao cliente. Os Componentes do Cliente adicionam 'use client' e oferecem suporte a estado, efeitos e manipuladores de eventos. Combine-os: o servidor busca os dados; o cliente interage.

A seguir

Próxima lição: **O gancho use() para recursos assíncronos** — você lerá promessas e contextos durante a renderização com o gancho use() do React 19.

Perguntas Frequentes

A aula “Componentes de servidor do React explicados” é grátis?

Sim — o texto completo de “Componentes de servidor do React explicados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “Componentes de servidor do React explicados”?

Entenda o que são RSCs, como diferem dos componentes de cliente e quando usar cada um. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Componentes de servidor do React explicados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Componentes de servidor do React explicados
  2. O hook use() para recursos assíncronos
  3. Ações do React e useActionState
  4. useOptimistic para feedback instantâneo
← Voltar para React Academy