Compatibilidad con Entornos
- react-router:
react-router
es compatible con múltiples entornos, incluidos navegadores, aplicaciones móviles y plataformas de escritorio. Esto lo convierte en una opción versátil para proyectos que requieren enrutamiento en diferentes contextos. - react-router-dom:
react-router-dom
está diseñado específicamente para aplicaciones web, aprovechando las API del DOM para manejar la navegación y el enrutamiento. Incluye componentes y funciones que son exclusivos para entornos de navegador, lo que lo hace más adecuado para aplicaciones web tradicionales.
Componentes de Enrutamiento
- react-router:
react-router
proporciona componentes básicos para definir rutas y manejar la navegación. Sin embargo, no incluye componentes específicos del DOM, lo que requiere que los desarrolladores implementen algunas funcionalidades por su cuenta. - react-router-dom:
react-router-dom
incluye componentes específicos del DOM, comoLink
,NavLink
yBrowserRouter
, que facilitan la creación de enlaces y la gestión de la navegación en aplicaciones web. Estos componentes están optimizados para trabajar con el DOM, lo que mejora la accesibilidad y la usabilidad.
Enrutamiento Basado en URL
- react-router:
react-router
permite el enrutamiento basado en URL, lo que significa que las rutas se definen en función de la estructura de la URL. Esto permite una navegación intuitiva y la posibilidad de compartir enlaces directos a diferentes partes de la aplicación. - react-router-dom:
react-router-dom
también admite el enrutamiento basado en URL, pero lo hace de manera más eficiente para aplicaciones web. Proporciona herramientas adicionales para manejar la historia del navegador, los enlaces y la sincronización de la URL con el estado de la aplicación.
Soporte para Enlaces
- react-router:
react-router
proporciona una funcionalidad básica para manejar enlaces y navegación. Sin embargo, no incluye componentes de enlace específicos, lo que puede requerir más trabajo por parte del desarrollador. - react-router-dom:
react-router-dom
incluye componentes de enlace avanzados, comoLink
yNavLink
, que facilitan la creación de enlaces navegables. Estos componentes son altamente personalizables y ofrecen características adicionales, como estilos activos y gestión de la accesibilidad.
Ejemplo de Código
- react-router:
Ejemplo de Enrutamiento Básico con
react-router
import { Router, Route } from 'react-router'; import { createMemoryHistory } from 'history'; const history = createMemoryHistory(); const App = () => ( <Router history={history}> <Route path="/" component={Home} /> <Route path="/about" component={About} /> </Router> );
- react-router-dom:
Ejemplo de Enrutamiento Básico con
react-router-dom
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; const App = () => ( <Router> <nav> <Link to="/">Inicio</Link> <Link to="/about">Acerca de</Link> </nav> <Route path="/" exact component={Home} /> <Route path="/about" component={About} /> </Router> );