Enrutamiento Dinámico y Navegación Programática en React Router
Clase 10 de 31 • Curso de React Avanzado
Resumen
Aprender a implementar enrutamiento dinámico y navegación programática es clave para crear aplicaciones React efectivas y bien estructuradas. A continuación, se presentan los pasos y detalles esenciales para configurar estos dos conceptos usando React Router.
¿Qué es el enrutamiento dinámico?
El enrutamiento dinámico permite configurar rutas que acepten parámetros, como un ID o nombre de usuario, para mostrar contenido específico. Por ejemplo:
- Supongamos que queremos ver el perfil de un usuario. Podemos crear una ruta como
/users/:id
donde:id
es el parámetro dinámico que representa el ID del usuario. - En lugar de tener múltiples rutas (product/1, product/2, etc.), configuramos una sola ruta como
product/:id
que cargará el componente del producto basándose en el valor del ID pasado en la URL.
Implementación en React Router
- En el archivo de rutas, configuramos una ruta dinámica:
"product/:id" component={Product} /> - En el componente
Product
, utilizamos el hookuseParams
para capturar el ID desde la URL:const { id } = useParams();
- Este
id
se utiliza luego para obtener y mostrar la información específica del producto.
¿Qué es la navegación programática?
La navegación programática permite cambiar de vista mediante código sin necesidad de un enlace visible. Esto es útil para casos como redirecciones automáticas tras una acción del usuario (como enviar un formulario).
Implementación en React Router
- Usamos el hook
useNavigate
para obtener una función de navegación:const navigate = useNavigate();
- Creamos una función que utilice este hook para redirigir al usuario, por ejemplo, a la vista
About
:const goToAbout = () => navigate('/about');
- Asignamos esta función a un botón o evento específico para que se ejecute cuando sea necesario.
¿Cómo se organizan los componentes y enlaces?
Para estructurar los componentes y enlaces en la interfaz:
- Creamos una carpeta de
components
y colocamos en ella los archivos de cada vista (Home, About, Product). - En
App
, configuramos los enlaces en una barra de navegación, como:Home About Product 1 Product 2
- Para una mejor organización visual, cada enlace se envuelve en etiquetas
li
dentro de una listaul
.
¿Cómo se configuran los estilos de navegación?
- Modificamos
index.css
para personalizar los estilos, separando adecuadamente los elementos de la barra de navegación para una experiencia de usuario más clara y ordenada.