Navegación en React Router: Uso de Link y NavLink
Clase 7 de 30 • Curso de React.js: Navegación con React Router
Contenido del curso
- 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Organización de carpetas y rutas en React con React Router DOM 6
18:40 - 20

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

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

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

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

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

Implementación de React Router en Proyectos Legacy
11:07
¿Cómo transformar la navegación de una aplicación con React Router?
En el mundo del desarrollo web, la navegación eficiente es fundamental para una experiencia de usuario agradable. React Router nos ofrece herramientas como Link y NavLink que facilitan esta tarea, permitiendo cambiar la URL de nuestra aplicación con JavaScript sin necesidad de recargar la página. En esta ocasión, exploraremos cómo mejorar la navegación en nuestras aplicaciones utilizando estos componentes.
¿Qué diferencia hay entre las etiquetas <a> y los componentes Link y NavLink?
Cuando creamos un menú de navegación, frecuentemente usamos etiquetas <a> dentro de listas desordenadas (<ul>), como:
<nav>
<ul>
<li><a href="#/home">Home</a></li>
<li><a href="#/blog">Blog</a></li>
<li><a href="#/profile">Profile</a></li>
</ul>
</nav>
Sin embargo, este método tiene limitaciones, como la necesidad de ajustar manualmente el href para el hash. Aquí es donde Link y NavLink simplifican el proceso:
-
Link: Es un componente oficial dereact-router-domque usa la propiedadtoen lugar dehref, eliminando la necesidad de gestionar hashes manualmente.import { Link } from 'react-router-dom'; <Link to="/home">Home</Link> -
NavLink: Similar aLink, pero con más flexibilidad en cuanto a estilos y clases, permitiéndonos aplicar estilos condicionales en función de si el enlace está activo.import { NavLink } from 'react-router-dom'; <NavLink to="/home" style={({ isActive }) => ({ color: isActive ? 'red' : 'blue' })}> Home </NavLink>
¿Cómo estilizar enlaces de forma condicional con NavLink?
Una de las ventajas de NavLink es su capacidad para estilizar enlaces dinámicamente. Esto se logra gracias a su capacidad de recibir un parámetro llamado isActive, que indica si la ruta a la que apunta el enlace es la actual.
-
Usamos una función para retornar un objeto de estilos o un string de clases:
<NavLink to="/home" style={({ isActive }) => ({ color: isActive ? 'red' : 'blue' })} > Home </NavLink>
Esto nos permite destacar visualmente el enlace de la ruta en la que nos encontramos, mejorando la claridad del usuario sobre su ubicación actual en la aplicación.
¿Cómo optimizar el código de rutas dinámicas?
Al trabajar con varias rutas, es común que nos enfrentemos a mucho código repetido. Una práctica recomendada es crear un arreglo de objetos que contenga las rutas y su correspondiente texto de visualización. A partir de este arreglo, podemos generar los componentes de manera dinámica:
const routes = [
{ to: '/', text: 'Home' },
{ to: '/blog', text: 'Blog' },
{ to: '/profile', text: 'Profile' }
];
<ul>
{routes.map(route => (
<li key={route.to}>
<NavLink to={route.to} style={({ isActive }) => ({ color: isActive ? 'red' : 'blue' })}>
{route.text}
</NavLink>
</li>
))}
</ul>
Este enfoque no solo minimiza el código repetido, sino que también facilita la expansión futura del menú de navegación, mejorando la mantenibilidad del código.
¿Qué precauciones tomar al usar otros routers?
Si estás utilizando una versión diferente de React Router o incluso otro tipo de enrutador, es fundamental consultar la documentación para encontrar los equivalentes de Link y NavLink. La comprensión completa de estos componentes aumentará la eficacia de nuestra navegación:
- Asegúrate de estar actualizado con la documentación más reciente del router que uses.
- Verifica las propiedades y métodos específicos que ofrecen componentes como
NavLinkpara aprovechar al máximo sus funcionalidades.
Al utilizar estas herramientas y técnicas, estarás mejor preparado para construir aplicaciones con una navegación fluida y eficiente, fomentando una experiencia de usuario positiva. ¡Continúa explorando y mejorando tus habilidades en el desarrollo web!