Componentes
Crear y componer componentes funcionales
Que son los Componentes?
Los componentes son los bloques de construccion de cualquier aplicacion React. Son piezas de UI independientes y reutilizables que puedes componer para construir interfaces complejas. Piensa en ellos como funciones JavaScript que aceptan entradas (props) y retornan elementos React.
Componentes Funcionales
La forma moderna de escribir componentes React es usando funciones:
// Componente funcional simple
function Saludo() {
return <h1>Hola, Mundo!</h1>;
}
// Funcion flecha (tambien valido)
const Saludo = () => {
return <h1>Hola, Mundo!</h1>;
};
// Retorno implicito para componentes simples
const Saludo = () => <h1>Hola, Mundo!</h1>;
Usando Componentes
function App() {
return (
<div>
<Saludo />
<Saludo />
<Saludo />
</div>
);
}
// Renderiza:
// Hola, Mundo!
// Hola, Mundo!
// Hola, Mundo!
Composicion de Componentes
Los componentes pueden contener otros componentes:
function Encabezado() {
return (
<header>
<Logo />
<Navegacion />
</header>
);
}
function Logo() {
return <img src="/logo.png" alt="Logo" />;
}
function Navegacion() {
return (
<nav>
<a href="/">Inicio</a>
<a href="/acerca">Acerca</a>
<a href="/contacto">Contacto</a>
</nav>
);
}
function App() {
return (
<div>
<Encabezado />
<main>Contenido principal</main>
<footer>Pie de pagina</footer>
</div>
);
}
Organizacion de Archivos
// src/components/Boton.jsx
export default function Boton({ children }) {
return <button className="btn">{children}</button>;
}
// src/components/Tarjeta.jsx
export default function Tarjeta({ titulo, contenido }) {
return (
<div className="tarjeta">
<h2>{titulo}</h2>
<p>{contenido}</p>
</div>
);
}
// src/App.jsx
import Boton from './components/Boton';
import Tarjeta from './components/Tarjeta';
function App() {
return (
<div>
<Tarjeta titulo="Hola" contenido="Bienvenido a React" />
<Boton>Haz clic</Boton>
</div>
);
}
Mejores Practicas
- Un componente por archivo: Mantiene el codigo organizado
- Nombres en PascalCase: MiComponente, no miComponente
- Componentes pequenos: Si un componente crece demasiado, dividelo
- Reutilizabilidad: Disena componentes para ser reutilizados