React es una de las bibliotecas de JavaScript más populares para construir interfaces de usuario. Una de sus principales características es la capacidad de dividir la UI en componentes reutilizables. En este artículo, te mostraremos cómo crear un componente en React, desde la estructura básica hasta cómo integrarlo en tu aplicación.
Un componente en React es una pieza reutilizable de la interfaz de usuario. Puede ser tan pequeño como un botón o tan grande como una página completa. Los componentes permiten dividir la UI en partes más manejables, facilitando el desarrollo y la escalabilidad de la aplicación.
React ofrece dos tipos principales de componentes:
1. Componentes de función: Son funciones de JavaScript que retornan elementos de React. Son los más utilizados en las versiones modernas de React.
2. Componentes de clase: Son clases de ES6 que extienden de React.Component
y tienen un método render()
que retorna elementos de React. Aunque siguen siendo válidos, los componentes de clase son menos comunes hoy en día.
Comencemos creando un componente de función básico. Este componente será un simple saludo que recibe un nombre como propiedad (prop) y lo muestra en la pantalla.
Para crear un componente en React, sigue estos pasos:
1. Crea un archivo para el componente: Dentro de la carpeta src/
de tu proyecto, crea un archivo llamado Saludo.js
.
2. Escribe el código del componente:
import React from 'react';
function Saludo({ nombre }) {
return (
<div>
<h1>Hola, {nombre}!</h1>
</div>
);
}
export default Saludo;
En este ejemplo:
import React from 'react';
importa la biblioteca React.
function Saludo({ nombre })
define el componente como una función que recibe props
. Aquí estamos usando la desestructuración para acceder directamente al prop nombre
.
export default Saludo;
exporta el componente para que pueda ser utilizado en otros archivos.
Ahora que has creado el componente Saludo
, puedes usarlo en otro componente, como App.js
:
import React from 'react';
import Saludo from './Saludo';
function App() {
return (
<div className="App">
<Saludo nombre="Juan" />
<Saludo nombre="Ana" />
</div>
);
}
export default App;
Este código renderiza dos instancias del componente Saludo
, cada una con un nombre diferente. Cuando ejecutes la aplicación, verás "Hola, Juan!" y "Hola, Ana!" en la pantalla.
Aunque los componentes de función son la norma en React moderno, aún es útil saber cómo crear un componente de clase, especialmente si estás trabajando en proyectos más antiguos.
Aquí te mostramos cómo escribir un componente de clase:
1. Crea un archivo para el componente: Crea un archivo llamado SaludoClase.js
en la carpeta src/
.
2. Escribe el código del componente:
import React, { Component } from 'react';
class SaludoClase extends Component {
render() {
return (
<div>
<h1>Hola, {this.props.nombre}!</h1>
</div>
);
}
}
export default SaludoClase;
En este ejemplo:
import React, { Component } from 'react';
importa React y la clase Component
.
class SaludoClase extends Component
define el componente como una clase que extiende Component
.
this.props.nombre
accede al prop nombre
que se pasa al componente.
Puedes utilizar este componente de la misma manera que utilizaste el componente de función en App.js
:
import React from 'react';
import SaludoClase from './SaludoClase';
function App() {
return (
<div className="App">
<SaludoClase nombre="Carlos" />
<SaludoClase nombre="Lucía" />
</div>
);
}
export default App;
Este código renderizará "Hola, Carlos!" y "Hola, Lucía!" en la pantalla.
Puedes añadir estilos a tus componentes de varias maneras en React. Una de las formas más comunes es utilizando archivos CSS.
1. Crea un archivo CSS: Crea un archivo llamado Saludo.css
en la carpeta src/
.
2. Escribe los estilos:
.saludo {
color: blue;
font-size: 24px;
text-align: center;
}
Ahora, importa este archivo CSS en tu componente y aplica la clase saludo
:
import React from 'react';
import './Saludo.css';
function Saludo({ nombre }) {
return (
<div className="saludo">
<h1>Hola, {nombre}!</h1>
</div>
);
}
export default Saludo;
Al ejecutar tu aplicación, el texto "Hola, [nombre]!" aparecerá en azul, centrado y con un tamaño de fuente de 24px.
El estado es una característica clave en React que permite que los componentes manejen y reaccionen a cambios en los datos.
useState
en Componentes de Función
Para manejar el estado en un componente de función, usa el hook useState
:
import React, { useState } from 'react';
function Contador() {
const [count, setCount] = useState(0);
return (
<div>
<p>Has hecho clic {count} veces</p>
<button onClick={() => setCount(count + 1)}>
Clic aquí
</button>
</div>
);
}
export default Contador;
Aquí:
useState(0)
inicializa el estado count
con el valor 0.
setCount
es la función que actualiza el estado.
Si estás trabajando con un componente de clase, el estado se maneja de una manera diferente:
import React, { Component } from 'react';
class ContadorClase extends Component {
constructor(props) {
super(props);
this.state = {
count: 0,
};
}
render() {
return (
<div>
<p>Has hecho clic {this.state.count} veces</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Clic aquí
</button>
</div>
);
}
}
export default ContadorClase;
En este ejemplo:
this.state
es donde se almacena el estado.
this.setState
actualiza el estado.
Crear componentes en React es fundamental para construir aplicaciones web modulares, reutilizables y fáciles de mantener. Ya sea que utilices componentes de función o de clase, React te ofrece la flexibilidad y el poder necesarios para construir interfaces de usuario dinámicas y complejas. Ahora que has aprendido a crear y utilizar componentes, puedes seguir explorando las capacidades de React para desarrollar aplicaciones más sofisticadas. ¡Feliz codificación!
Jorge García
Fullstack developer