Contenido del curso
Introducción a React Router DOM 6
- 4

Instalar React Router Dom 6 paso a paso
11:18 min - 5

Browser Router vs Hash Router en GitHub Pages
07:25 min - 6

Primeras rutas con React Router Dom 6
10:41 min - 7

Link y NavLink para navegación en React
13:18 min - 8

Rutas dinámicas con React Router DOM y useParams
15:36 min - 9

useNavigate para navegar con JavaScript
08:56 min - 10

Outlet y rutas anidadas en React Router
06:56 min
Fake authentication con React Router DOM 6
- 11

Rutas privadas con fake auth en React
23:48 min - 12

Rutas privadas y públicas en React
09:50 min - 13

Rutas protegidas con Navigate en React
13:45 min - 14

Roles y permisos en aplicaciones web: Autenticación y autorización
11:56 min - 15

Retos avanzados en React: manejo de estado y composición de componentes
08:21 min - 16

Redirect al login con useLocation en React
Viendo ahora - 17

Rutas dinámicas con roles de usuario
04:56 min
React Router en TODO Machine
- 18

Cómo migrar React portals a rutas reales
11:33 min - 19

Estructura de carpetas con React Router Dom 6
18:40 min - 20

Botón de editar todos con React y SVG
12:19 min - 21

Generación de IDs únicos para gestionar tareas en React
15:22 min - 22

Migrar modales a rutas con useNavigate
17:36 min - 23

Cómo funciona editTodo con useParams
14:02 min - 24

Texto por defecto en textarea con useLocation
21:54 min - 25

Implementación de React Router en Proyectos Legacy
11:07 min
Próximos pasos
Redirect al login con useLocation en React
Resumen
Mejorar la experiencia del usuario en una aplicación con React Router Dom implica resolver un detalle que parece pequeño, pero que marca la diferencia: redirigir al usuario después del login a la URL desde la que llegó, no a una página por defecto como /profile. Este reto es ideal si ya entiendes rutas privadas y protegidas y quieres dar un paso más en user experience.
¿Por qué importa el redirect inteligente después del login?
Imagina que entras a editar un blog post específico, pero no estás autenticado. La aplicación te manda al formulario de login, te autenticas y, en lugar de devolverte a esa URL puntual, te lleva a tu perfil.
Ahí pasa el problema de UX: tú no querías ver tu perfil, querías terminar la acción que iniciaste. La aplicación rompe la intención original del usuario y lo obliga a navegar de nuevo hasta donde estaba.
¿Qué es un redirect en una aplicación web? Es una redirección automática que envía al usuario de una URL a otra, normalmente para proteger rutas privadas o forzar autenticación antes de mostrar cierto contenido.
¿Cómo resolver el redirect con useLocation en React Router Dom?
La pista principal del reto [01:45] es el hook useLocation. Este hook te entrega información sobre la ruta actual y permite pasarle al login la referencia de la página desde la cual se hizo el redirect.
La idea general se resume en tres pasos:
- Cuando una ruta protegida hace redirect al login, guarda la ubicación original usando useLocation.
- Pasa esa ubicación al componente de login como state o como parámetro.
- Después de autenticar, lee esa referencia y haz redirect a esa URL en lugar de mandar al profile.
Si el usuario llegó al login directamente, sin venir de una ruta protegida, entonces el comportamiento por defecto sigue siendo enviarlo a su perfil.
¿Qué hace exactamente useLocation?
Es un hook de React Router Dom que te devuelve el objeto location actual. Con él puedes leer el pathname, los parámetros de búsqueda y cualquier state que se haya pasado al navegar.
En este reto, useLocation es la herramienta que conecta dos momentos: el instante en que se intercepta al usuario y el instante en que se le devuelve a su destino original.
¿Por qué useLocation y no useNavigate? useNavigate sirve para ejecutar la navegación, pero useLocation es la que te da el contexto de dónde está el usuario y de dónde viene. Las dos se complementan.
¿Cómo abordar el reto paso a paso?
Antes de escribir código, vale la pena pensar la lógica como un flujo. El usuario entra a una URL protegida, el sistema lo intercepta, lo manda al login con una pista de hacia dónde quería ir, y al autenticarse esa pista se usa para devolverlo.
- Detecta la ruta original en el momento del redirect hacia el login.
- Almacena esa ruta de forma accesible para el formulario de autenticación.
- Al completar el login, lee esa ruta y ejecuta la navegación final.
- Si no hay ruta guardada, redirige al profile como acción por defecto.
¿Existe un ejemplo oficial en React Router Dom?
Sí. La documentación oficial de React Router Dom incluye un ejemplo con un comportamiento muy parecido [02:30], que sirve como referencia para entender el patrón. No es la misma aplicación, pero la filosofía es la misma: usar el estado de navegación para preservar la intención del usuario.
¿Qué soluciones alternativas puedes explorar?
Aunque la pista oficial es useLocation, este tipo de problemas admite varios enfoques. Puedes resolverlo con:
- useLocation combinado con useNavigate y el state de la ruta.
- Parámetros en la URL del login, tipo
/login?redirect=/edit/post-123. - Almacenamiento temporal en context o en un store global.
- localStorage o sessionStorage, aunque suele ser menos elegante para este caso.
Cada opción tiene ventajas y costos. La de useLocation con state es la más idiomática dentro de React Router Dom, pero si llegaste a una solución distinta, también es válida mientras conserve la intención original del usuario.
Comparte en los comentarios qué camino tomaste, qué decisiones de diseño tomaste detrás de tu implementación y si encontraste alguna fricción. La idea es tener una discusión sana sobre cuál es la mejor forma de resolver este problema de UX.