CodeForge

React 19 de Cero a Experto / Fundamentos

Composición con children: componentes que envuelven

Teoría18 min20 XP

Hasta ahora tus componentes reciben datos por props. Pero hay una prop especial que recibe OTROS componentes: children. Con ella construyes contenedores reutilizables —una <Tarjeta> que envuelve cualquier contenido, un <Modal>, un layout—. Es la composición, la forma más elegante y flexible de combinar piezas en React.

El marco que enmarca cualquier cuadro

La prop children

Todo lo que pongas ENTRE las etiquetas de apertura y cierre de un componente llega a ese componente como la prop children:

Lo que va entre <Tarjeta> y </Tarjeta> llega como children, y el componente lo pinta donde ponga {children}. Fíjate en el tipo: children: ReactNode es el tipo de TypeScript para "cualquier cosa que React pueda renderizar" (JSX, texto, números, listas). La misma <Tarjeta> envuelve un gasto o un total —aporta el marco, tú el contenido.

Composición sobre configuración

Este patrón escala a contenedores más ricos —modales, layouts, paneles— que verás por todo React: cada uno aporta su comportamiento (un modal centra y oscurece el fondo, un layout organiza) y recibe su contenido por children. La app entera termina siendo componentes que se envuelven unos a otros, como muñecas rusas de UI.

Quieres un componente <Panel> flexible que pueda contener CUALQUIER cosa (texto, botones, otro componente). ¿Cuál es el mejor diseño?

Mini-reto

Crea contenedores: 1) haz un componente <Alerta> con props tipo ("info" | "error") y children, que pinte un recuadro de color según el tipo y muestre el children dentro; 2) úsalo dos veces con contenidos distintos (uno con solo texto, otro con un título y un botón); 3) bonus: agrega una prop opcional onCerrar? que muestre una "X" si se pasa. Sientes cómo un buen contenedor envuelve cualquier cosa.

Qué sigue

Módulo 1 cerrado: dominas componentes, props, listas, eventos y composición —las piezas estáticas de React—. El reto del módulo las junta en una primera "Mi Bolsillo" hecha de componentes. Pero todo lo que has visto es INMÓVIL: para que la UI cambie con la interacción, falta la pieza mágica —el ESTADO—, y ese es todo el módulo 2.