React 19 de Cero a Experto / Routing
Reto: construye tu propio React Router
Entendiste React Router desde afuera; hoy lo entiendes desde ADENTRO construyendo tu propio router en
miniatura: un Context que guarda la URL actual, un <Link> que navega sin recargar, un emparejador de
rutas con parámetros (/gastos/:id) —todo corriendo en vivo con la History API—. Es el mismo enfoque
"desde cero" con el que hiciste tu useQuery, tu Zustand y tu máquina de estados. Cuando termines, el
routing no será magia: será pushState, un Context y un poco de comparación de strings.
Reto
Tu propio router
Qué debes construir
Un mini React Router funcional con estas piezas:
- Un
RouterProvider: guarda la ruta actual en estado, escuchapopstate(botón atrás), y ofrece una funciónnavegar(to)que usapushState. - Un
<Link to="...">: renderiza un<a>que al hacer clic navega SIN recargar (conpreventDefault). - Un emparejador de rutas: una función que compare un patrón (
/gastos/:id) con la ruta actual y extraiga los parámetros ({ id: "5" }) o devuelvanullsi no coincide. - Un
<Rutas>: recorre una lista de rutas, encuentra la que coincide con la URL y renderiza su elemento (pasándole los parámetros), o un 404 si ninguna coincide. - Demo: rutas
/,/gastosy/gastos/:idnavegables con<Link>.
Reglas
- Usa la History API (
pushState+popstate), como el mini-router de la lección 1. - El emparejador debe soportar segmentos dinámicos (
:id) y devolver los parámetros. - Todo tipado con TypeScript.
45:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 7 conquistado: dominas el routing —rutas, parámetros, layouts anidados, loaders/actions, rutas protegidas— y hasta construiste tu propio router. Tu app ya tiene pantallas navegables. Lo que falta para que sea usable de verdad son FORMULARIOS que no frustren: validados, con errores claros y accesibles. El módulo 8 trae React Hook Form, Zod y los formularios multi-paso.