props.En React, las aplicaciones se construyen a partir de múltiples componentes. Para que trabajen juntos, deben compartir información.
props.function Saludo({ nombre }) {
return <h3>Hola, {nombre}!</h3>;
}
export default function App() {
return (
<div>
<Saludo nombre="Ana" />
<Saludo nombre="Carlos" />
</div>
);
}
Las props son de solo lectura.
El componente padre las define, y el hijo las recibe como parámetros.
import { useState } from "react";
function Contador({ valor }) {
return <p>Valor actual: {valor}</p>;
}
export default function App() {
const [count, setCount] = useState(0);
return (
<div>
<Contador valor={count} />
<button onClick={() => setCount(count + 1)}>Incrementar</button>
</div>
);
}
El estado se mantiene en el padre y se pasa al hijo como prop.
Para comunicar datos hacia el padre, se pasa una función como prop.
function Hijo({ onEnviar }) {
return (
<button onClick={() => onEnviar("Mensaje del hijo")}>
Enviar mensaje
</button>
);
}
export default function Padre() {
function manejarMensaje(msg) {
alert("Recibido: " + msg);
}
return <Hijo onEnviar={manejarMensaje} />;
}
Cuando dos componentes necesitan compartir el mismo dato, el estado debe moverse hacia su antecesor común.
function InputUsuario({ nombre, setNombre }) {
return (
<input
type="text"
value={nombre}
onChange={(e) => setNombre(e.target.value)}
/>
);
}
function MostrarNombre({ nombre }) {
return <p>Hola, {nombre}!</p>;
}
export default function App() {
const [nombre, setNombre] = useState("");
return (
<div>
<InputUsuario nombre={nombre} setNombre={setNombre} />
<MostrarNombre nombre={nombre} />
</div>
);
}
props.childrenPermite que un componente contenga otros elementos o componentes hijos.
function Tarjeta({ children }) {
return <div className="card">{children}</div>;
}
export default function App() {
return (
<Tarjeta>
<h3>Bienvenido</h3>
<p>Contenido dentro de la tarjeta</p>
</Tarjeta>
);
}
props.children para componentes reutilizables.<FormularioUsuario /> que permita escribir un nombre.props.children permite componer interfaces flexibles y reutilizables.🚀 Con esto puedes conectar tus componentes y crear aplicaciones más modulares.