Saltar al contenidoPedro Farbo

React Server Components: El Futuro de React

Entiende cómo React Server Components revolucionan el desarrollo web, mejorando el rendimiento y la experiencia del desarrollador.

¡Este contenido es gratuito! Ayuda a mantener el proyecto en línea.

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

React Server Components (RSC) representan un cambio de paradigma en cómo construimos aplicaciones React. Exploremos cómo funcionan y por qué son importantes.

El Problema que RSC Resuelve

Tradicionalmente, las aplicaciones React tienen dos problemas principales:

  1. Tamaño del bundle: Todo el código JavaScript necesita ser enviado al cliente
  2. Cascada de peticiones: Los datos se obtienen después de que JavaScript carga

Cómo Funciona

tsx
// Este componente se ejecuta SOLO en el servidorasync function BlogPosts() {  // ¡Podemos usar async/await directamente!  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 con Client Components'use client';function LikeButton({ postId }) {  const [likes, setLikes] = useState(0);   return (    <button onClick={() => setLikes(l => l + 1)}>      ❤️ {likes}    </button>  );}

Beneficios Principales

1. Mejor Rendimiento

  • Cero JavaScript para componentes del servidor
  • Streaming progresivo de HTML
  • Menos datos transferidos

2. Acceso Directo a Recursos

tsx
// Acceso directo a la base de datosasync function ProductDetails({ id }) {  const product = await prisma.product.findUnique({    where: { id }  });   return (    <div>      <h1>{product.name}</h1>      <p>{product.description}</p>    </div>  );}

3. Mejor DX (Developer Experience)

  • Colocación de datos cerca de donde se usan
  • Menos boilerplate para data fetching
  • TypeScript end-to-end

Cuándo Usar Cada Tipo

Server ComponentsClient Components
Obtener datosInteractividad
Acceder al backenduseState, useEffect
Contenido estáticoEvent listeners
Componentes grandesAnimaciones

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>;} // Nueva versión (Server)async function NewComponent() {  const data = await fetch('https://api.example.com/data');  return <div>{data.name}</div>;}

Conclusión

React Server Components son el futuro de React. Combinan lo mejor de ambos mundos: la interactividad de React con el rendimiento del servidor.

Frameworks como Next.js 14+ ya soportan RSC por defecto. Es hora de comenzar a explorar esta nueva forma de construir aplicaciones.

PF
Sobre el autor

Pedro Farbo

Platform Engineering Lead & Solutions Architect con +10 años de experiencia. CEO de Farbo TSC. Especialista en Microservicios, Kong, Backstage y Cloud.

¿Te gustó el contenido? ¡Tu contribución ayuda a mantener todo online y gratuito!

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