Fundamentos de Hooks
useState, useReducer, useRef, closures y las reglas de los hooks.
- Media~20 min
La Trampa del Closure Obsoleto
¿Por qué el alert muestra el conteo inicial (0) incluso después de hacer clic en el botón varias veces?…
- Closures
Comenzar reto - Fácil~10 min
¿Actualizaciones de Estado SÃncronas?
¿Qué se registra en la consola cuando se hace clic en el botón? Corrige el código para que ambas…
- useState
Comenzar reto - Fácil~10 min
El Hook Condicional (El Movimiento Ilegal)
¿Por qué React lanza un error aquà si isLoading cambia de true a false?
- Rules of Hooks
Comenzar reto - Fácil~10 min
La Trampa de la Dependencia de Objetos
¿Por qué este efecto se ejecuta en cada render?
- useEffect
Comenzar reto - Media~20 min
Implementando usePrevious
Escribe un hook personalizado usePrevious<T>(value: T) que devuelva el valor del render anterior.
- Custom Hooks
Comenzar reto - Fácil~10 min
Ref vs State
Necesitas contar cuántas veces se renderiza un componente sin causar un re-render adicional. ¿Cómo?
- Refs
Comenzar reto - Media~20 min
useReducer para Estado Complejo
¿Por qué podrÃa preferirse useReducer sobre useState para pasar callbacks profundamente?
- useReducer
Comenzar reto - Fácil~10 min
Doble Invocación de StrictMode
¿Por qué console.log dentro de useEffect se ejecuta dos veces en desarrollo?
- StrictMode
Comenzar reto - Fácil~10 min
La Trampa del Closure Obsoleto en el Contador
El contador comienza en 0. El usuario hace clic en "Iniciar", pero el contador se queda en 1 y sigue…
- Closures
Comenzar reto - DifÃcil~35 min
useSyncExternalStore para Estado Externo
Crea un hook que se suscriba a un almacén externo (como un gestor de estado global) usando…
- useSyncExternalStore
Comenzar reto - Media~20 min
Reducer con Tipado Seguro de Acciones
El reducer tiene strings de tipos de acción dispersos por todas partes, haciéndolo propenso a errores…
- useReducer
Comenzar reto - DifÃcil~35 min
Deshacer / Rehacer con useReducer
Construye un contador con soporte de undo y redo. El valor actual forma parte de una pila de historial — undo…
- useReducer
- Undo/Redo
Comenzar reto - Media~20 min
Carrito de Compras: useReducer y Dinero en Centavos
Una grilla de productos más un panel de carrito donde toda mutación fluye por un reducer. La base agrega…
- useReducer
Comenzar reto - Media~20 min
Cronómetro Sin Deriva con Vueltas
El cronómetro base funciona pero está mal: cada tick del interval suma +10ms al display. Los timers no son…
- Timers
Comenzar reto - Media~20 min
Formulario por Configuración: fromEntries y Claves Computadas
Un formulario de perfil cuyos inputs se renderizan desde el array de configuración FIELDS — pero el estado de…
- Forms
Comenzar reto - Media~20 min
Normaliza el Estado Anidado de la API
La API devuelve posts con el autor embebido — el mismo autor duplicado en varios posts. La base guarda el…
- React
Comenzar reto - Media~20 min
Multi-Selección con Set y Lookups por Map
Un selector de equipo que ya funciona de punta a punta: filas que se togglean, Select all / Clear, un…
- React
Comenzar reto - Media~20 min
Tabla Paginada: Un Reducer, Cero Páginas Obsoletas
Una tabla de productos paginada donde filtro, orden y página viven cada uno en su propio useState — y trae un…
- useReducer
Comenzar reto