21. Pasando props básicos entre componentes
21. Pasando props básicos entre componentes en React
Introducción
En este tutorial aprenderemos a usar props en React para crear componentes reutilizables y dinámicos. Los props son propiedades que podemos pasar de un componente padre a un componente hijo.
Paso 1: Crear el componente Saludar
Primero, creamos nuestro componente funcional Saludar.js en la carpeta src/components:
jsx
// src/components/Saludar.js
import React from "react";
export default function Saludar() {
return (
<div>
<h2>Hola Agustín</h2>
</div>
);
}
Este componente inicialmente muestra un saludo estático.
Paso 2: Usar el componente en App.js
Importamos y usamos nuestro componente en App.js:
jsx
// src/App.js
import React from "react";
import logo from "./logo.svg";
import "./App.css";
import Saludar from "./components/Saludar";
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<Saludar />
<Saludar />
</header>
</div>
);
}
export default App;
En este punto, ambos componentes muestran "Hola Agustín".
Paso 3: Introducir props
Modificamos Saludar.js para aceptar props:
jsx
// src/components/Saludar.js
import React from "react";
export default function Saludar(props) {
console.log(props);
return (
<div>
<h2>Hola {props.name}</h2>
</div>
);
}
IMPORTANTE: Para usar variables en JSX, debemos envolverlas entre llaves {}.
Paso 4: Pasar props desde App.js
Ahora pasamos diferentes nombres a cada componente:
jsx
// src/App.js
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<Saludar name="Agustin Navarro Galdon" />
<Saludar name="Paco" />
</header>
</div>
);
}
Resultado:
Primer componente: "Hola Agustin Navarro Galdon"
Segundo componente: "Hola Paco"
Paso 5: Añadir más props
Podemos pasar tantas props como necesitemos. Añadamos la edad:
jsx
// src/components/Saludar.js
export default function Saludar(props) {
console.log(props);
return (
<div>
<h2>Hola {props.name}, tiene {props.edad} años.</h2>
</div>
);
}
Paso 6: Pasar múltiples props
jsx
// src/App.js
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<Saludar name="Agustin Navarro Galdon" edad="26" />
<Saludar name="Paco" edad="31" />
</header>
</div>
);
}
Resultado:
"Hola Agustin Navarro Galdon, tiene 26 años."
"Hola Paco, tiene 31 años."
Paso 7: Ver props en consola
Si revisamos la consola del navegador, veremos que cada instancia del componente recibe un objeto con sus props:
javascript
// Para el primer componente:
{ name: "Agustin Navarro Galdon", edad: "26" }
// Para el segundo componente:
{ name: "Paco", edad: "31" }
Conceptos clave aprendidos
1. Qué son los props
Son propiedades que se pasan de un componente padre a un hijo
Permiten que los componentes sean reutilizables y dinámicos
Llegan al componente como un objeto llamado props
2. Sintaxis para pasar props
jsx
<Componente nombrePropiedad="valor" otraPropiedad="valor2" />
3. Sintaxis para recibir props
jsx
function Componente(props) {
return <div>{props.nombrePropiedad}</div>;
}
4. Uso de variables en JSX
// Correcto:
<h2>Hola {props.name}</h2>
// Incorrecto (se mostraría literalmente "props.name"):
<h2>Hola props.name</h2>
Ventajas de usar props
Reutilización: Un mismo componente puede usarse con diferentes datos
Dinamismo: Los componentes pueden cambiar su comportamiento según los datos recibidos
Mantenibilidad: Los datos fluyen de forma predecible de padre a hijo
Legibilidad: Es claro qué datos necesita cada componente
Ejercicio práctico
Intenta modificar el componente Saludar para que acepte:
Un prop ciudad que muestre la ciudad de la persona
Un prop profesion que muestre su profesión
Usa todos los props en el saludo final
Conclusión
Los props básicos son la forma más simple de comunicación entre componentes en React. Nos permiten crear componentes genéricos que se especializan según los datos que reciben, lo cual es fundamental para construir aplicaciones escalables y mantenibles.
En el siguiente nivel, aprenderemos a pasar objetos completos, arrays, funciones y otros tipos de datos complejos a través de props
Comentarios
Publicar un comentario