Volver al curso

React Fundamentals

leccion
7 / 13
beginner
10 horas
Componentes y Props

Children: Componentes contenedores

Lectura
12 min~1 min lectura

La prop children

children es una prop especial que contiene lo que pones entre las etiquetas de un componente.

Sintaxis basica

function Card({ children }) {
  return (
    <div className="card">
      {children}
    </div>
  );
}

// Uso
<Card>
  <h2>Titulo</h2>
  <p>Este contenido es children</p>
</Card>

Componentes contenedores

function Container({ children }) {
  return (
    <div className="container mx-auto px-4">
      {children}
    </div>
  );
}

function Page() {
  return (
    <Container>
      <Header />
      <Main />
      <Footer />
    </Container>
  );
}

Ejemplo: Modal

function Modal({ isOpen, onClose, children }) {
  if (!isOpen) return null;

  return (
    <div className="modal-overlay">
      <div className="modal">
        <button onClick={onClose}>X</button>
        {children}
      </div>
    </div>
  );
}

// Uso
<Modal isOpen={showModal} onClose={() => setShowModal(false)}>
  <h2>Confirmar accion</h2>
  <p>Estas seguro?</p>
  <button>Si</button>
  <button>No</button>
</Modal>

Slots con props nombradas

function Layout({ header, sidebar, children, footer }) {
  return (
    <div className="layout">
      <header>{header}</header>
      <aside>{sidebar}</aside>
      <main>{children}</main>
      <footer>{footer}</footer>
    </div>
  );
}

// Uso
<Layout
  header={<Nav />}
  sidebar={<Menu />}
  footer={<Copyright />}
>
  <Article />
</Layout>