Composición con children: construir UI flexible sin duplicar

Aprende a diseñar componentes contenedor con `children` para reutilizar estructura y permitir contenido variable sin romper encapsulación.

Uno de los superpoderes de React es la composición: crear piezas pequeñas y combinarlas para construir interfaces complejas.

`children` permite que un componente aporte estructura y estilo base mientras delega el contenido específico a quien lo use.

Esto evita duplicar markup en múltiples pantallas y mejora la coherencia visual entre secciones similares.

A nivel de arquitectura, composición reduce acoplamiento y facilita evolución de diseño sin tocar toda la base de código.

  • Un contenedor resuelve estructura; el contenido lo define el padre cuando lo consume.
  • En lugar de crear `CardUsuario`, `CardProducto` y `CardNoticia` con el mismo esqueleto, puedes crear un `Card` base.
  • Ese `Card` recibe `children` y opcionalmente props de estilo o variantes para cubrir más casos con una sola pieza.
  • El resultado es menor duplicación y una librería interna de componentes más consistente.
  • children actúa como hueco de contenido dentro del componente reutilizable.

Pensar en contenedores reutilizables

Un contenedor resuelve estructura; el contenido lo define el padre cuando lo consume.

En lugar de crear `CardUsuario`, `CardProducto` y `CardNoticia` con el mismo esqueleto, puedes crear un `Card` base.

Ese `Card` recibe `children` y opcionalmente props de estilo o variantes para cubrir más casos con una sola pieza.

El resultado es menor duplicación y una librería interna de componentes más consistente.

Patrón base con children

children actúa como hueco de contenido dentro del componente reutilizable.

Buenas prácticas para no sobrecomplicar

Composición no significa crear APIs imposibles de entender.

Si un componente contenedor acumula demasiada lógica, divide responsabilidades en capas.

La prioridad es mantener una API de uso clara para el equipo.

  • Empieza con `children` y pocas props explícitas.
  • Extrae subcomponentes cuando la estructura crezca mucho.
  • Evita 20 props booleanas para cada microvariante.
  • Documenta ejemplos de uso del componente base.
React
10

Composición con children: construir UI flexible sin duplicar

Aprende a diseñar componentes contenedor con `children` para reutilizar estructura y permitir contenido variable sin romper encapsulación.

Código del tema: Componentes, estado y render declarativo

📘 Teoría

Pensar en contenedores reutilizables

Un contenedor resuelve estructura; el contenido lo define el padre cuando lo consume.

1

En lugar de crear `CardUsuario`, `CardProducto` y `CardNoticia` con el mismo esqueleto, puedes crear un `Card` base.

2

Ese `Card` recibe `children` y opcionalmente props de estilo o variantes para cubrir más casos con una sola pieza.

3

El resultado es menor duplicación y una librería interna de componentes más consistente.

Patrón base con children

children actúa como hueco de contenido dentro del componente reutilizable.

Card contenedora
function Card({ title, children }) {
  return (
    <article className="card">
      <h3>{title}</h3>
      <div>{children}</div>
    </article>
  );
}

function App() {
  return (
    <Card title="Perfil">
      <p>Contenido libre dentro de la tarjeta.</p>
    </Card>
  );
}

Buenas prácticas para no sobrecomplicar

Composición no significa crear APIs imposibles de entender.

Si un componente contenedor acumula demasiada lógica, divide responsabilidades en capas.

La prioridad es mantener una API de uso clara para el equipo.

  • Empieza con `children` y pocas props explícitas.
  • Extrae subcomponentes cuando la estructura crezca mucho.
  • Evita 20 props booleanas para cada microvariante.
  • Documenta ejemplos de uso del componente base.

🧪 Aprende probando

Ejemplo Ejemplo: panel reutilizable Un panel base que se reutiliza para contenidos distintos sin cambiar estructura.

🏁 Retos

Reto Reto: inyecta contenido en children Completa el uso de `Card` para mostrar un párrafo en su interior.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre React.

Test de React

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .