Creación de Componentes con JavaScript y React

Clase 2 de 24Curso de React.js

Resumen

La construcción de aplicaciones web modernas se basa en un enfoque modular que permite desarrollar sistemas complejos a partir de piezas más pequeñas y manejables. Este paradigma, conocido como desarrollo basado en componentes, es fundamental en frameworks como React y ha revolucionado la forma en que creamos interfaces de usuario. Entender cómo identificar, construir y reutilizar componentes es esencial para cualquier desarrollador web que busque crear aplicaciones escalables y mantenibles.

¿Qué son los componentes y por qué son importantes?

Los componentes son las unidades básicas de construcción en el desarrollo de aplicaciones web modernas. Funcionan como piezas de Lego que, al unirse, forman estructuras más complejas y funcionales. Esta modularidad permite desarrollar de manera más eficiente, ya que podemos:

  • Identificar partes individuales de la interfaz (cards, headers, footers, etc.).
  • Construir cada parte de forma aislada.
  • Combinar estas partes para crear la aplicación completa.

Al pensar en componentes, no nos enfrentamos a toda la aplicación de una vez, sino que abordamos problemas más pequeños y manejables. Por ejemplo, al analizar una interfaz, podemos identificar elementos como:

  • Barras de navegación
  • Tarjetas de contenido
  • Formularios
  • Listas de elementos
  • Pies de página

Esta forma de pensar facilita enormemente el desarrollo y mantenimiento de aplicaciones web complejas.

¿Cómo se implementa una lista en JavaScript tradicional vs React?

Implementación con JavaScript tradicional

Cuando creamos una lista dinámica utilizando JavaScript tradicional, necesitamos manipular directamente el DOM:

// Array de elementos
const items = ["react", "javascript", "git"];

// Crear contenedor
const container = document.createElement("div");
const list = document.createElement("ul");

// Recorrer el array y crear elementos
items.forEach(item => {
  const listItem = document.createElement("li");
  listItem.textContent = item;
  list.appendChild(listItem);
});

// Añadir la lista al contenedor
container.appendChild(list);

// Añadir el contenedor al DOM
document.body.appendChild(container);

Este enfoque requiere varios pasos:

  1. Crear elementos del DOM manualmente
  2. Establecer su contenido
  3. Establecer relaciones padre-hijo
  4. Insertar todo en el documento

Implementación con React y JSX

React simplifica enormemente este proceso gracias a JSX, una sintaxis que permite mezclar JavaScript con HTML:

function App() {
  const items = ["react", "javascript", "git"];
  
  return (
    <section>
      <h1>Hola mundo</h1>
      <ul>
        {items.map((item, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </section>
  );
}

Las ventajas de este enfoque son evidentes:

  • Código más declarativo y legible
  • No es necesario manipular el DOM directamente
  • Menos líneas de código para lograr el mismo resultado
  • Mayor facilidad para mantener y actualizar

En React, el código es más cercano a cómo pensamos sobre la interfaz: declaramos lo que queremos ver, no los pasos para construirlo.

¿Cómo funciona JSX en React?

JSX es una extensión de sintaxis para JavaScript que permite escribir estructuras similares a HTML dentro de código JavaScript. Es uno de los pilares fundamentales de React y lo que hace que la creación de componentes sea tan intuitiva.

Características importantes de JSX:

  • Permite incluir expresiones JavaScript dentro de llaves {}
  • Requiere que cada componente devuelva un solo nodo raíz (por eso usamos contenedores como <div> o <section>)
  • Utiliza className en lugar de class para asignar clases CSS
  • Requiere que las etiquetas se cierren correctamente (incluso las de autocierre como <img />)
  • Usa key para identificar elementos en listas, lo que ayuda a React a optimizar el renderizado

En el ejemplo anterior, usamos JSX para:

  1. Definir la estructura general con <section>
  2. Incluir un título con <h1>
  3. Crear una lista con <ul>
  4. Utilizar map() dentro de llaves para transformar el array en elementos de lista
  5. Asignar una clave única a cada elemento con key={index}

Esta sintaxis híbrida entre JavaScript y HTML es lo que hace que React sea tan poderoso y a la vez accesible para desarrolladores que ya conocen estas tecnologías.

La creación de componentes en React representa un cambio de paradigma respecto a la programación web tradicional. Al adoptar este enfoque modular, no solo escribimos menos código, sino que creamos aplicaciones más mantenibles, escalables y fáciles de entender. La sintaxis JSX puede parecer extraña al principio, pero rápidamente se convierte en una herramienta intuitiva que acelera el desarrollo de interfaces de usuario complejas.

¿Has experimentado con la creación de componentes en React? ¿Qué diferencias notas respecto a la programación tradicional con JavaScript? Comparte tu experiencia y dudas en los comentarios.