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
03:42 min - 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
Viendo ahora - 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
Cómo migrar React portals a rutas reales
Resumen
Migrar un proyecto existente a React Router es una de las tareas más comunes cuando entras a trabajar en una empresa, agencia o startup. Aquí aprenderás a tomar Todo Machine, un proyecto heredado, e integrarle rutas dinámicas para reemplazar portales y modales por navegación real.
¿Por qué migrar un proyecto existente en lugar de empezar desde cero?
En la mayoría de los trabajos no vas a planear la arquitectura desde cero. Vas a recibir un código que alguien más escribió, con decisiones que quizá no compartes, y tu tarea será adaptarlo para implementar nuevas features o resolver bugs dentro de un sprint.
Ese es exactamente el ejercicio: tomar Todo Machine, fingir que no lo conocías y aplicarle rutas. Así entrenas el músculo más útil para tu carrera real como desarrollador.
¿Qué es un proyecto heredado? Es un proyecto que ya empezó hace tiempo y al que te sumas sin haber participado en su arquitectura inicial. Tu reto es adaptarte a las herramientas y estructura que ya existen [00:24].
¿Qué es Todo Machine y qué rutas vamos a crear?
Todo Machine es una aplicación de tareas con contador, buscador, lista de todos y un modal para agregar nuevas tareas. Ese modal se abre como un portal hacia otro nodo HTML, y eso es justo lo que vamos a eliminar [01:32].
La nueva estructura de navegación queda así:
/o/home: la página principal con TodoCounter, TodoSearch y la lista de todos./new: una ruta dedicada al formulario para crear una nueva tarea, reemplazando al modal./edit/:id: una ruta dinámica que carga el formulario con el texto del todo seleccionado.
Esto implica que la interactividad ya no depende solo de prender o apagar estados, sino de navegación real entre rutas. Cancelar te devuelve al home, añadir valida y también te devuelve al home tras crear el todo.
¿Por qué los todos necesitan un ID único?
En los cursos anteriores se decidió identificar cada todo por su texto, bajo la lógica de que dos tareas no deberían repetirse. Pero al introducir la edición, el texto cambia, y eso rompe bases de datos, historial de navegación y rutas [04:32].
La solución es asignar un ID único a cada todo. Ese ID viaja en la URL como parámetro dinámico, y con useParams puedes leerlo dentro del componente para buscar en local storage el todo correspondiente y precargarlo en el textarea.
¿Para qué sirve useParams en React Router? Es un hook que te permite leer los parámetros dinámicos de una URL. Si tu ruta es
/edit/:id, useParams te devuelve ese id para que lo uses dentro del componente.
¿Cómo descargar el proyecto e instalar React Router DOM v6?
El código vive en el repositorio curso-react-router-proyecto2, organizado en ramas, una por cada clase del curso. Empieza con la rama Inicio curso RR [05:50].
Los pasos para arrancar son:
- Clonar el repositorio con
git cloneen la carpeta de tu preferencia. - Abrir el proyecto en tu editor de código.
- Ejecutar
npm installpara instalar dependencias. - Correr
npm startpara levantar el servidor enlocalhost:3000.
Si npm install falla, elimina la carpeta node_modules, el archivo package-lock.json y el yarn.lock, y vuelve a intentarlo. Si el problema persiste, deja tu duda en los comentarios marcada como pregunta.
¿Cómo se instala React Router DOM v6?
El comando es directo:
bash npm install -S react-router-dom@6
El flag -S equivale a --save, y especificar la versión 6 evita sorpresas si en el futuro salen versiones nuevas con APIs distintas [09:55].
¿Qué error común aparece con completeTodo y cómo se resuelve?
Al correr el proyecto, puede aparecer el error complete Todo is not a function. La causa está en el custom hook useTodos, donde la función completeTodo quedó dentro del objeto state cuando debería estar en stateUpdaters, porque es un actualizador de estado, no un estado [07:56].
Mover esa función al objeto correcto restaura el funcionamiento. Una vez resuelto, puedes completar todos, filtrar con el buscador y verificar que local storage persiste tu información al recargar.
¿Qué componentes vas a eliminar al migrar a rutas?
La lógica del modal y los React portals desaparece por completo. Todo lo que en el código actual diga modal o React portal se elimina, porque su función se reemplaza con navegación entre rutas [09:25].
El resto de la arquitectura se conserva: la composición de TodoHeader, TodoCounter, TodoSearch, TodoList y TodoItem sigue intacta, junto con los custom hooks useTodos y useLocalStorage que centralizan la lógica.
Antes de pasar a la siguiente clase, revisa cada componente del proyecto. Identifica dónde se usa el modal, dónde se renderiza el formulario y cómo fluyen las props. Cuéntame en los comentarios qué parte del proyecto te parece más retadora de migrar.