¿Qué es React?
Una página con un botón que cuenta clics necesita mantener el número sincronizado con cada clic. En JavaScript puro, agarras el nodo de texto del botón, agregas un listener de clic y actualizas el número manualmente cada vez que alguien hace clic. Agrega un filtro de búsqueda, un total de carrito de compras y un modal que se abre y cierra, y de repente tienes un conjunto entero de actualizaciones manuales dispersas por el código, cada una un lugar donde un bug puede colarse cuando los datos cambian en otra parte de la página.
React es una biblioteca de JavaScript para construir interfaces de usuario a partir de componentes, y te quita ese trabajo manual de encima. Este capítulo ve qué significa eso en la práctica: la idea central detrás de React, dónde se ejecuta y cómo encaja en la pregunta de biblioteca versus framework que surge temprano para la mayoría de las personas que lo aprenden.
Componentes y la idea central
Aquí está ese mismo contador de clics escrito como un componente de React:
import { useState } from 'react'
function Counter() {
const [count, setCount] = useState(0)
return (
<button onClick={() => setCount(count + 1)}>
Clicked {count} times
</button>
)
}Este ejemplo usa algunos conceptos que aún no conoces: el marcado dentro de return es JSX, useState es un hook, y onClick es un manejador de eventos. Los capítulos Components y JSX cubren ese marcado, State cubre useState en detalle, y Events cubre onClick, así que toma la sintaxis como dada por ahora y sigue la estructura de la idea en su lugar.
count es el estado. El JSX devuelto por Counter describe qué debería mostrar el botón para ese estado. Hacer clic en el botón llama a setCount, que actualiza count, y React re-renderiza el botón para que coincida. Nunca tocas directamente el texto del botón. Lo describes de nuevo para el nuevo valor, y React se encarga de calcular qué cambió en la página.
Esa es la idea central que está debajo de cada componente de React: describes la UI como una función de tus datos, generalmente llamado estado, y React se encarga de actualizar el DOM para que coincida. Un componente es una función que devuelve un pedazo de UI, y una app es un árbol de componentes combinados juntos, todos funcionando de la misma manera que el contador anterior.
Dónde se ejecuta React
React se ejecuta principalmente en el navegador, renderizando componentes al DOM. Ese es el entorno en el que este handbook se mantiene a lo largo.
El modelo de componentes de React no está amarrado específicamente al DOM, sin embargo. Otros renderers conectan el mismo modelo a objetivos diferentes. El ejemplo más conocido es React Native, que usa los componentes y el modelo de estado de React para impulsar interfaces móviles nativas en lugar de una página web. Se menciona aquí para que el nombre no sea una sorpresa después. Enseñarlo está fuera del alcance de este handbook.
¿Biblioteca o framework?
React renderiza UI. No incluye enrutamiento, no decide cómo cargas datos, y no maneja renderizado en el servidor. Esas son decisiones que tomas tú mismo, a menudo recurriendo a otra herramienta junto a él. Esa es la razón práctica por la que React se considera una biblioteca en lugar de un framework completo: hace un trabajo bien y deja el resto a ti, en lugar de ser dueño de toda la app de la manera en que lo hace un framework.
The kinds of frameworks cubre esta distinción en detalle, incluyendo dónde se sitúa React al lado de algo como Next.js, que sí agrega las piezas faltantes.
Lo siguiente: History and versions, que cubre cómo llegó React aquí y qué cambió de versión en versión.

