Ir al contenido
angel.library

React es una biblioteca para describir interfaces mediante componentes. Un componente recibe entradas y devuelve una descripción de UI. Cuando cambian props, estado o contexto, React puede volver a ejecutarlo, reconciliar el árbol anterior con el siguiente y aplicar al DOM únicamente el commit necesario.

props + state + context
→ render puro
→ árbol de React
→ reconciliación
→ commit en el DOM
→ efectos que sincronizan sistemas externos

JSX es sintaxis transformada durante el build. Un Hook compone capacidades de React respetando un orden estable de llamadas. Ninguno reemplaza el conocimiento de JavaScript, eventos o APIs del navegador.

Empieza en Primeros pasos. Después avanza por componentes, flujo de datos y estado antes de estudiar efectos o rendimiento.

Para cada ejemplo:

  1. identifica props, estado y valores derivados;
  2. predice qué evento solicita la actualización;
  3. explica qué snapshot ve el handler;
  4. separa render, commit y efecto;
  5. verifica el comportamiento con React DevTools y una prueba visible.

No memorices Hooks como recetas aisladas. Cada uno responde a una necesidad del modelo: recordar estado, distribuir contexto, sincronizar un sistema, conservar una referencia o priorizar una actualización.

NecesitoDocumento
JSX, componentes, props, listas y formulariosFundamentos
render, commit, fuente de verdad y flujo de datosRenderizado y flujo
snapshot, batching, inmutabilidad y reset con keysModelo de estado
estado localuseState
transiciones complejasuseReducer
compartir un valor lejanoContext
DOM o valores mutables no visualesuseRef
suscripciones, timers y sistemas externosuseEffect
firma y propósito de cualquier HookMapa de Hooks
extraer comportamiento reutilizableHooks personalizados
código diferido y límites de esperaSuspense, lazy y use
prioridad de actualizacionesuseTransition
UI optimistauseOptimistic
estado de formularios y ActionsuseActionState
APIs nuevas de React 19.3React 19.3
memoización, Profiler y compilerRendimiento
  1. Crear un proyecto y reconocer createRoot, StrictMode y JSX.
  2. Componentes, props, composición, condicionales, listas y keys.
  3. Eventos y formularios controlados o no controlados.
  4. Render, reconciliación y commit.

Al terminar debes construir una interfaz desde props sin mutar entradas ni iniciar efectos durante el render.

  1. Estado como snapshot, batching e inmutabilidad.
  2. useState y funciones actualizadoras.
  3. Subir estado y conservar una sola fuente de verdad.
  4. useReducer para transiciones relacionadas.
  5. Context para distribuir valores realmente transversales.
  6. Preservar o reiniciar estado mediante posición y keys.
  1. useRef y referencias DOM.
  2. useEffect como sincronización externa y su cleanup.
  3. useLayoutEffect, useEffectEvent y fuentes externas cuando corresponda.
  4. Hooks personalizados con contratos claros.

Un escape hatch permite salir del flujo declarativo para integrarse con algo externo. Debe ser una frontera visible, no el centro de la arquitectura.

  1. Suspense, lazy y recursos compatibles con use.
  2. Transitions y valores diferidos.
  3. Actions, estado pendiente y actualizaciones optimistas.
  4. Error Boundaries y estrategias de recuperación ofrecidas por el framework.
  1. Medición con Profiler antes de memoizar.
  2. memo, useMemo, useCallback y React Compiler.
  3. Routing, datos de servidor, formularios y store global según la necesidad.
  4. Componentes y hooks reutilizables después de dominar las APIs nativas.
TérminoSignificado
renderejecución que calcula la descripción siguiente de la UI
commitfase que aplica cambios necesarios al DOM
reconciliaciónrelación entre elementos anteriores y siguientes por tipo, posición y key
snapshotprops y estado fijos disponibles para un render
Hookfunción que compone capacidades de React
efectosincronización posterior con un sistema externo
hidrataciónconexión de React a HTML producido por servidor
transiciónactualización no urgente e interrumpible
  • Renderiza de forma pura; efectos y handlers contienen trabajo externo.
  • El estado mínimo vive cerca de quien lo usa y se trata como inmutable.
  • Un valor derivado se calcula; no se sincroniza con otro estado.
  • Context distribuye datos, pero no reemplaza automáticamente una arquitectura de estado.
  • Los refs no participan del render.
  • La lista de dependencias describe el código; no es un interruptor elegido a conveniencia.
  • Memoiza después de medir y optimizar la estructura.
  • Las librerías se eligen por un problema concreto, no para evitar aprender las capacidades nativas.