Organización de carpetas y rutas en React con React Router DOM 6
Clase 19 de 30 • Curso de React.js: Navegación con React Router
Contenido del curso
Introducción a React Router DOM 6
- 4

Instalación de React Router DOM 6 en un proyecto React
11:18 min - 5

Uso de Hash Router en Aplicaciones Web con React Router DOM
07:26 min - 6

Creación de Rutas Dinámicas con React Router DOM 6
10:41 min - 7

Navegación en React Router: Uso de Link y NavLink
13:18 min - 8

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

Uso de useNavigate en React Router DOM para navegación dinámica
08:57 min - 10

Uso de Outlet y Nested Routes en React Router DOM 6
06:56 min
Fake authentication con React Router DOM 6
- 11

Autenticación y Autorización en Apps con React Router y Hooks
23:48 min - 12

Control de Acceso en Menú con Autenticación React
09:50 min - 13

Protección de Rutas con React Router y Hooks
13:46 min - 14

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

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

Mejorando la Redirección Post-Login en Aplicaciones Web
03:42 min - 17

Roles y Permisos Avanzados en React Router v6
04:57 min
React Router en TODO Machine
- 18

Migración de Todo Machine a React Router 6
11:33 min - 19

Organización de carpetas y rutas en React con React Router DOM 6
Viendo ahora - 20

Maquetación de Botón Editar en Lista de Tareas con React
12:19 min - 21

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

Migración de modales a rutas en React: implementación práctica
17:37 min - 23

Editar ToDos en React con Custom Hook y URL Parameters
14:03 min - 24

Mejora de la Experiencia del Usuario al Editar To Do's en React
21:55 min - 25

Implementación de React Router en Proyectos Legacy
11:07 min
Próximos pasos
- 26

Filtrado de Búsquedas en URL con React Router
03:42 min - 27

Migración de React Router: de la versión 6 a la 5 en proyectos empresariales
07:10 min - 28

Clonación de Platzi Movies usando React y React Router
01:30 min - 29

Clonación de React Router en Componentes React
02:21 min - 30

Navegación Avanzada con React Router DOM 6
05:55 min
¿Cómo organizar un proyecto React con rutas?
Bienvenido al mundo de React Routing. Un componente clave en la construcción de aplicaciones modernas con React es cómo organizar nuestros archivos y estructurar nuestras carpetas para manejar eficazmente múltiples vistas o rutas. En este análisis, desglosaremos cómo estructurar un proyecto con React Router DOM y compartirás consejos útiles para que apliques esta metodología en tu propio trabajo.
¿Qué es React Router DOM y por qué es relevante?
React Router DOM es una biblioteca esencial para manejar la navegación en aplicaciones React. Te permite definir múltiples rutas en una sola aplicación, mejorando su fluidez y modularidad.
- Modularidad: Ayuda a dividir el código, asignando componentes específicos a distintas vistas.
- Mantenibilidad: Facilita actualizar o cambiar configuraciones de rutas sin afectar completamente la lógica de la aplicación.
- Conveniente: Optimiza la experiencia del desarrollador al manejar estados de URL, lo cual es crucial para aplicaciones web más complejas.
¿Cómo organizar la estructura de carpetas y archivos?
Una buena estrategia comienza organizando y dividiendo tu proyecto en carpetas clave. Vamos a desglosar un ejemplo de cómo podrías organizar tu proyecto React:
Creando carpetas específicas: UI y Routes
-
Carpeta UI:
- Almacena componentes que se reutilizan en varias vistas.
- Proporciona un lugar central para componentes de interfaz de usuario genéricos.
-
Carpeta Routes:
- Almacena componentes específicos para cada vista.
- Permite la coexistencia de componentes específicos de cada ruta junto con componentes compartidos.
Estructura ideal
- src
- UI
ComponentA.jsxComponentB.jsx[...]
- Routes
- Home
HomePage.jsx
- NewTodo
NewTodoPage.jsx
- EditTodo
EditTodoPage.jsx
- Home
- UI
¿Cómo implementar y configurar React Router en el proyecto?
Implementar React Router requiere configurar una serie de rutas en tu componente App. Utilizaremos HashRouter para manejar las rutas en nuestro proyecto.
import React from 'react';
import { HashRouter as Router, Route, Switch } from 'react-router-dom';
import HomePage from './Routes/Home/HomePage';
import EditTodoPage from './Routes/Edit/EditTodoPage';
import NewTodoPage from './Routes/New/NewTodoPage';
function App() {
return (
<Router>
<Switch>
{/* Ruta Home */}
<Route exact path="/" component={HomePage} />
{/* Ruta Nueva Tarea */}
<Route path="/new" component={NewTodoPage} />
{/* Ruta Editar Tarea con Parámetro Dinámico */}
<Route path="/edit/:id" component={EditTodoPage} />
{/* Manejo de rutas no encontradas */}
<Route path="*" render={() => <p>No encontrado</p>} />
</Switch>
</Router>
);
}
export default App;
¿Cómo gestionar componentes al modificar estructuras?
-
Imports automáticos: Al mover archivos, algunos entornos de desarrollo como Visual Studio Code pueden ajustar automáticamente las rutas de importación.
-
Uso de alias: Considera el uso de alias para las importaciones, lo que facilitará la gestión de referencias complejas y repetitivas en tus archivos.
-
Manejo de rutas dinámicas: Utiliza patrones en los paths para admitir rutas que requieren parámetros, como IDs, permitiendo componentes específicos para acciones como editar un To Do.
¿Qué sigue después de configurar las rutas?
Con esta estructura y configuración base, es crucial mantener un enfoque iterativo. A medida que tu aplicación crece, aprovecha las posibilidades de React Router DOM para:
- Introducir características de autenticación, protegiendo ciertas rutas.
- Manejar estados y hooks específicos para la gestión del historial y la navegación.
- Optimizar la carga a través de carga diferida (lazy loading), para mejorar el rendimiento de la página.
Mantente motivado y sigue innovando en la organización de tus aplicaciones, esto no solo mejora la experiencia de los usuarios, sino también la tuya como desarrollador. ¿Cuál es la estructura que más te ha funcionado? ¡Comparte tus experiencias en los comentarios!