0Pricing
React Academy · Lección

Explicación de los React Server Components

Comprenda qué son los RSC, en qué se diferencian de los componentes de cliente y cuándo utilizar cada uno.

Explicación de los React Server Components es una lección gratuita de React Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Bienvenida

En esta lección aprenderá qué son los React Server Components (RSC), en qué se diferencian de los componentes de cliente y cuándo usar cada tipo.

Los dos mundos de los componentes

React 19 y Next.js App Router dividen los componentes en dos mundos: **Componentes de servidor** (se renderizan en el servidor, sin interactividad) y **Componentes de cliente** (se renderizan tanto en el servidor como en el cliente, y tienen estado y controladores de eventos).

Componentes de servidor de forma predeterminada

En Next.js App Router, todos los componentes son componentes de servidor de forma predeterminada. Active el modo de componente de cliente añadiendo 'use client' al principio del archivo.
// 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 de cliente

Añada 'use client' al principio de un archivo para convertirlo en un componente de cliente. Los componentes de cliente pueden usar useState, useEffect, controladores de eventos y APIs del navegador.
'use client';
import { useState } from 'react';

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

Capacidades de los componentes de servidor

Los componentes de servidor pueden: esperar consultas a la base de datos, leer el sistema de archivos, acceder a secretos del entorno, importar paquetes grandes exclusivos del servidor y renderizarse sin enviar JavaScript al 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>;
}

Limitaciones de los componentes de servidor

Los componentes de servidor NO PUEDEN: usar useState, useEffect, controladores de eventos (onClick, etc.), APIs del navegador (window, localStorage) ni Context. Estas funciones requieren 'use client'.

Componer componentes de servidor y de cliente

El patrón habitual es el siguiente: un componente de servidor obtiene los datos y se los pasa a un componente de cliente mediante props. El servidor gestiona los datos; el cliente gestiona la interacción.
// 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)} />;
}

La regla del límite entre cliente y servidor

Una vez que marca un archivo con 'use client', todos sus componentes importados también se tratan como componentes de cliente. El límite entre el servidor y el cliente se establece a nivel de archivo.

Cero JavaScript para los componentes de servidor

Los componentes de servidor se renderizan como HTML en el servidor. El código de sus componentes NUNCA se envía al navegador. Esto reduce significativamente el tamaño del paquete de JavaScript.

Componentes de servidor frente a SSR

El SSR tradicional renderiza una página completa como HTML, pero envía todo el código de los componentes al cliente para la hidratación. Los componentes de servidor nunca envían su código al cliente: solo envían el resultado renderizado.

Comprobación rápida

¿Qué directiva añade a un archivo para convertirlo en un componente de cliente de React en Next.js App Router?

Resumen

Los componentes de servidor se ejecutan en el servidor, pueden acceder a bases de datos y secretos, y no envían JS al cliente. Los componentes de cliente añaden 'use client' y admiten estado, efectos y controladores de eventos. Combínelos: el servidor obtiene los datos y el cliente gestiona la interacción.

A continuación

Siguiente lección: **El hook use() para recursos asíncronos** — leerá promesas y contextos durante el renderizado con el hook use() de React 19.

Preguntas frecuentes

¿La lección «Explicación de los React Server Components» es gratis?

Sí — el texto completo de «Explicación de los React Server Components» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Explicación de los React Server Components»?

Comprenda qué son los RSC, en qué se diferencian de los componentes de cliente y cuándo utilizar cada uno. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Explicación de los React Server Components»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Explicación de los React Server Components
  2. El hook use() para recursos asíncronos
  3. React Actions y useActionState
  4. useOptimistic para respuestas instantáneas
← Volver a React Academy