React: Componentes

React: Aprende a crear y gestionar componentes en aplicaciones web. Guía detallada y actualizada con ejemplos prácticos.

¿Qué es un componente en React 19?

Un componente en React 19 es una unidad reutilizable de código que define cómo debe aparecer una parte de la interfaz y cómo debe comportarse. Existen dos tipos principales de componentes en React 19: componentes de clase y componentes funcionales.

Componentes funcionales

Los componentes funcionales son funciones de JavaScript que aceptan props como argumento y devuelven elementos de React. A partir de React 16.8, con la introducción de los Hooks, los componentes funcionales han ganado popularidad y funcionalidad.

import React from 'react';

function Saludo({ nombre }) {
  return <h1>Hola, {nombre}</h1>;
}

export default Saludo;

En este ejemplo, Saludo es un componente funcional que acepta una prop nombre y devuelve un elemento h1 con un saludo.

Hooks en componentes funcionales

Los Hooks permiten usar el estado y otras características de React sin necesidad de escribir una clase. El Hook useState es uno de los más utilizados.

import React, { useState } from 'react';

function Contador() {
  const [cuenta, setCuenta] = useState(0);

  return (
    <div>
      <p>Has hecho clic {cuenta} veces</p>
      <button onClick={() => setCuenta(cuenta + 1)}>Haz clic</button>
    </div>
  );
}

export default Contador;

En este ejemplo, Contador es un componente funcional que utiliza el Hook useState para gestionar el estado cuenta.

Componentes de clase

Aunque los componentes funcionales son más comunes hoy en día, los componentes de clase siguen siendo útiles para comprender el legado de React.

import React, { Component } from 'react';

class Saludo extends Component {
  render() {
    return <h1>Hola, {this.props.nombre}</h1>;
  }
}

export default Saludo;

En este ejemplo, Saludo es un componente de clase que accede a las props a través de this.props.

Ciclo de vida de los componentes

Los componentes de clase tienen métodos específicos que se ejecutan en diferentes etapas de su ciclo de vida. Algunos de los métodos más importantes son:

  • componentDidMount(): Se ejecuta después de que el componente se ha montado.
  • componentDidUpdate(): Se ejecuta después de que el componente se ha actualizado.
  • componentWillUnmount(): Se ejecuta justo antes de que el componente se desmonte.

Comunicación entre componentes

La comunicación entre componentes en React 19 se realiza principalmente a través de las props. Sin embargo, para la gestión de estado global, se recomienda utilizar Context o bibliotecas externas como Redux.

Ejemplo de uso de Context

import React, { createContext, useContext, useState } from 'react';

const TemaContext = createContext();

function ProveedorTema({ children }) {
  const [tema, setTema] = useState('claro');

  return (
    <TemaContext.Provider value={{ tema, setTema }}>
      {children}
    </TemaContext.Provider>
  );
}

function BotonTema() {
  const { tema, setTema } = useContext(TemaContext);

  return (
    <button onClick={() => setTema(tema === 'claro' ? 'oscuro' : 'claro')}>
      Cambiar a tema {tema === 'claro' ? 'oscuro' : 'claro'}
    </button>
  );
}

export { ProveedorTema, BotonTema };

En este ejemplo, TemaContext permite compartir el estado del tema entre componentes sin necesidad de pasar props manualmente en cada nivel.

Certifícate en React con CertiDevs PLUS

Lecciones de este módulo de React

Lecciones de programación del módulo Componentes del curso de React.

Ejercicios de programación en este módulo de React

Evalúa tus conocimientos en Componentes con ejercicios de programación Componentes de tipo Test, Puzzle, Código y Proyecto con VSCode.