Newsletter para devsEntra

Todo lo que necesitas saber para empezar con React.js

Es cierto, “todo” sobre React.js no se puede contar en un solo artículo del blog. Pero aquí si que vas a poder leer y escuchar las principales ventajas y puntos relevantes de esta librería.

🔥 React.js es una potente herramienta muy solicitada a nivel profesional. Puede ser la puerta abierta a nuevas aventuras ;)

Origen de React

👉 React es una biblioteca de JavaScript desarrollada por Facebook para construir interfaces de usuario. Surgió como respuesta a los problemas que se presentaban al actualizar información en varios sitios de las páginas web. Para solucionar estos problemas, se inventó el patrón Flux, que permite centralizar y actualizar la información en un único punto.

Patrón Flux y Redux

El patrón de tocar los datos en un sitio y hacerlos comunicar hacia el ápice se conoce como Redux o Vuex en otros frameworks. Gracias a esto, la modificación de la interfaz gráfica solo tiene una dirección, lo que facilita el control y la gestión del estado de la aplicación.

Programación declarativa y funcional

React tiene una programación más declarativa y funcional que otras soluciones anteriores, lo que permite un mayor control sobre la lógica dentro de la plantilla sin usar directivas como Vue o Angular.

Podcast dedicado

🎧 Escucha  WR 241: Preguntas y respuestas sobre React (versión gratis) 

JSX y la creación de componentes

Funciones que pintan elementos

JSX es una forma más amigable de crear elementos que los métodos de React. Todos los componentes en React son funciones, incluso los componentes nativos. Esto facilita la comprensión de que cada tag llama a una función y, si se anidan tags, se pasa a la siguiente función.

Anidación de tags en JSX

El JSX se basa en un esquema de anidación similar a HTML, pero no tiene indicación de dependencias como en Angular. A pesar de que el JSX causa cierta expectación y rechazo por su similitud con HTML y JavaScript, es importante destacar que React es puro JavaScript y JSX es solo azúcar sintáctico para hacer el código más legible.

Comparación con Angular

A diferencia de Angular, React no utiliza directivas, lo que permite un mayor control sobre la lógica dentro de la plantilla. Además, React ofrece una programación más declarativa y funcional, lo que facilita la gestión y control del estadode la aplicación.

Ventajas de utilizar React.js

Atomización de componentes y facilidad para hacer tests

Una de las ventajas de React es la atomización de componentes, lo que facilita la realización de tests y la detección de errores en el código. Además, al tener componentes más pequeños y específicos, se logra un mejor mantenimiento y reutilización del código.

Single page application y reutilización de componentes

React permite la creación de single page applications (SPA), lo que evita la pérdida de estados y mejora la experiencia del usuario. Además, gracias a su sistema de componentes, se pueden reutilizar y combinar de diferentes maneras, lo que simplifica el proceso de desarrollo y mantenimiento.

Gestión del estado y desacoplamiento del equipo

Los frameworks de gestión del estado, como Redux, ofrecen numerosas ventajas al trabajar con React, como el desacoplamiento del equipo y la división de responsabilidades. Esto permite que cada miembro del equipo se enfoque en una parte específica de la aplicación y facilite la colaboración.

Tu primera aplicación con React.js y Vite

Antes de comenzar, asegúrate de tener instalado Node.js en tu computadora. Luego, sigue los siguientes pasos:

  1. Crea un nuevo directorio para tu proyecto y ábrelo en tu terminal.
  2. Inicializa un nuevo proyecto de Node.js usando el comando npm init. Esto creará un archivo package.json en el directorio raíz de tu proyecto.
  3. Instala React y ReactDOM como dependencias del proyecto usando el comando npm install react react-dom.
  4. Instala Vite como una dependencia de desarrollo usando el comando npm install vite --save-dev.
  5. Crea un archivo index.html en el directorio raíz de tu proyecto con el siguiente contenido:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>React App</title>
</head>
<body>
  <div id="root"></div>
  <script type="module" src="/src/main.jsx"></script>
</body>
</html>

Este archivo incluye una etiqueta <div> con un id de root para que React pueda renderizar en él, y una etiqueta <script> que cargará el archivo main.jsx que aún no hemos creado.

  1. Crea un directorio src en el directorio raíz de tu proyecto y dentro de él crea un archivo main.jsx con el siguiente contenido:
import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
  <React.StrictMode>
    <h1>Hello, world!</h1>
  </React.StrictMode>,
  document.getElementById('root')
);

Este archivo importa React y ReactDOM, y utiliza ReactDOM.render() para renderizar un componente de React simple que muestra un mensaje de saludo en la página.

  1. Finalmente, ejecuta Vite en modo de desarrollo usando el comando npx vite. Esto iniciará el servidor de desarrollo y podrás ver tu aplicación React en http://localhost:3000.

Hooks en React.js

Importancia de los hooks en la reactividad

Los hooks son un concepto clave en React, ya que permiten trabajar en la lógica de la aplicación antes del proceso de renderizado. De esta manera, es posible calcular la información necesaria antes de mostrarla en pantalla, mejorando así la reactividad del componente.

Hooks más comunes y su uso

Algunos de los hooks más utilizados en React son useState, useEffect, useCallback y useMemo. Estos hooks permiten gestionar el estado y la lógica de la aplicación de una manera más simple y menos intuitiva.

Ejemplo de código de un hook en React

Supongamos que queremos crear un componente que muestre el número de clics que el usuario ha hecho en un botón. Para ello, necesitamos tener un contador que se actualice cada vez que el usuario haga clic en el botón. Podemos hacer esto utilizando el hook useState.

import React, { useState } from 'react';

function Contador() {
  const [contador, setContador] = useState(0);

  return (
    <div>
      <h2>Contador: {contador}</h2>
      <button onClick={() => setContador(contador + 1)}>Aumentar</button>
    </div>
  );
}

export default Contador;

En este ejemplo, importamos el hook useState y lo usamos para inicializar la variable contador en cero. Luego, en la función Contador, renderizamos un <h2> que muestra el valor actual del contador y un botón que, al hacer clic, llama a la función setContador con un valor actualizado (en este caso, simplemente incrementamos el valor del contador en 1).

Cada vez que se llama a setContador, React actualizará el valor de contador y volverá a renderizar el componente con el nuevo valor. Así que, en este ejemplo, cada vez que el usuario haga clic en el botón, el valor del contador se actualizará y se mostrará en la página.

React.js en el ecosistema de desarrollo

Ventajas al pasar de backend a frontend

React ofrece ventajas significativas al pasar de backend a frontend, como un mayor control sobre la lógica de la aplicación, una mejor reutilización de componentes y una simplificación del proceso de desarrollo.

Comparación con otros frameworks

En comparación con otros frameworks, como Angular o Vue, React destaca por su enfoque en componentes, flujo de datos unidireccional y manipulación de estados. Además, es el framework más utilizado y cuenta con una gran comunidad de apoyo.

Comunidad y soporte de React

La comunidad de React es amplia y activa, lo que garantiza un buen soporte y actualizaciones constantes. Esto es fundamental para mantenerse al día con las mejores prácticas y resolver problemas rápidamente.

React.js y TypeScript

Usar TypeScript en React tiene las mismas ventajas que en JS Vanilla y otros frameworks, como una mejor documentación del código y control de tipos. Esto facilita la detección de errores y mejora la legibilidad del código.

TypeScript permite documentar el código y controlar los tipos de datos, lo que facilita la detección de errores y mejora la legibilidad del código.

Optimización y rendimiento en React

Control de la renderización de componentes

React permite controlar el rendimiento de la renderización de componentes, lo que es fundamental para garantizar una buena experiencia de usuario.

Uso de hooks para almacenar resultados

El uso de hooks como useCallback y useMemo permite almacenar los resultados de componentes, evitando así renderizados innecesarios y mejorando el rendimiento de la aplicación.

Gestión del estado global y optimización de listados

Encontrar el estado global en cascada es fundamental para evitar problemas con la aplicación completa, especialmente en aplicaciones con listados y tablas grandes.

Integración de React.js con otras tecnologías

React y jQuery en un mismo proyecto

Es posible utilizar React y JQuery en un mismo proyecto, aunque se recomienda adoptar el enfoque de React para aprovechar sus ventajas en términos de gestión del estado y reactividad.

Librerías de componentes y estilos

Existen diversas librerías de componentes y estilos para facilitar la construcción de formularios y tablas en React, como Material UI o Chakra UI. Estas librerías ofrecen componentes predefinidos y estilos que facilitan el desarrollo y mantenimiento de la aplicación.

Mantenimiento y actualizaciones en proyectos de React.js

Configuración de herramientas de desarrollo

Configurar herramientas de desarrollo como Prettier, linter y propiedades puede ser complicado al principio, pero una vez realizado, no hay mucho que cambiar. Esto facilita el mantenimiento y actualización de la aplicación.

Mantenimiento de componentes y librerías

El mantenimiento es más fácil en un componente automatizado y encorsetado, lo que facilita la detección de errores y la actualización de librerías.

React.js en Web Reactiva

Esta librería nos ha sorprendido e inspirado para crear contenidos de calidad y premium para investigar y crear más sobre React.js.

Preguntas y respuestas sobre React.js
Entrevista con dos expertos developers en React.
⭐️ Escucha el audio {Contenido premium}

Hooks en React.js
Si quieres dar un salto de calidad como React Developer, este curso es para ti.
⭐️ Acceder al taller {Contenido premium}

Viejoven aprendiendo React
Grabación de la ejecución de un curso abierto para aprender React.
⭐️ Acceder a la grabación {Contenido premium}

Conclusiones sobre React.js

Aplicaciones reales y casos de éxito

React.js es utilizado en una gran cantidad de aplicaciones reales y casos de éxito, lo que demuestra su madurez y eficacia como framework.

Flexibilidad y adaptabilidad del framework

React.js destaca por su flexibilidad y adaptabilidad, lo que permite su uso en diferentes tipos de proyectos y tecnologías.

Futuro y evolución de React.js

React.js continúa evolucionando y mejorando, lo que garantiza su relevancia y éxito en el futuro del desarrollo web.

Preguntas frecuentes

1. ¿React.js es adecuado para principiantes en el desarrollo web?

Sí, React.js es adecuado para principiantes, ya que su enfoque en componentes y programación declarativa facilita el aprendizaje y la comprensión del desarrollo web moderno.

2. ¿Es necesario aprender TypeScript para usar React.js?

No es necesario aprender TypeScript para usar React.js, pero su uso puede mejorar la legibilidad y mantenimiento del código.

3. ¿Cuál es la diferencia entre React.js y Angular?

React.js es una biblioteca de JavaScript para construir interfaces de usuario, mientras que Angular es un framework completo para el desarrollo de aplicaciones web. Ambos tienen enfoques diferentes en la gestión del estado y la creación de componentes.

4. ¿React.js es solo para aplicaciones de una sola página (SPA)?

React.js es muy utilizado en aplicaciones de una sola página, pero también se puede utilizar en aplicaciones multipágina y en combinación con otras tecnologías.

5. ¿Cómo se compara el rendimiento de React.js con otros frameworks?

React.js ofrece un buen rendimiento gracias a su enfoque en la gestión del estado y la optimización de la renderización de componentes. Sin embargo, el rendimiento específico dependerá de la aplicación y su implementación.

Escrito por:

Imagen de Daniel Primo

Daniel Primo

CEO en pantuflas de Web Reactiva. Programador y formador en tecnologías que cambian el mundo y a las personas. @delineas en twitter y canal @webreactiva en telegram

12 recursos para developers cada domingo en tu bandeja de entrada

Además de una skill práctica bien explicada, trucos para mejorar tu futuro profesional y una pizquita de humor útil para el resto de la semana. Gratis.