reactjs - example - react-router vs react-router-dom, ¿cuándo usar uno u otro?
static router react router dom (4)
En v4, react-router exporta los componentes y funciones principales.
react-router-dom exporta componentes compatibles con DOM, como
<Link>
(que representa
<a>
) y (que interactúa con la ventana window.history del navegador).
react-router-dom
reexporta todas las exportaciones de react-router, por lo que solo necesita importar desde
react-router-dom
en su proyecto.
Ambos tienen Ruta, Enlace, etc. ¿Cuándo usar uno u otro? Estoy realmente confundido sobre dónde usar cada uno. ¿Lado del servidor? ¿Lado del cliente?
https://reacttraining.com/react-router/
En algunos ejemplos necesita pasar la historia, en otros no. ¿Qué hacer?
<Router history={browserHistory}>
vs
<Router>
Es realmente confuso cuándo usar uno u otro, cualquier ayuda apreciada.
Simplemente use
react-router-dom
-
react-router-dom
reexporta todos los
react-router
.
El enlace en la respuesta de GitHub (
https://github.com/ReactTraining/react-router/issues/4648
).
react-router-dom es un
react-router
más:
-
<BrowserRouter>
que es<Router history={browserNativeHistoryApiWrapper}/>
-
algunas mejoras de enlace para el navegador
prueba: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/Link.js
-
y con
<NavLink>
- contenedor que sabe si está "activo" o no
react-router contiene todos los componentes comunes entre react-router-dom y react-router-native . ¿Cuándo deberías usar uno sobre el otro? Si está en la web, react-router-dom debe tener todo lo que necesita, ya que también exporta los componentes comunes que necesitará. Si está utilizando React Native, react-router-native debería tener todo lo que necesita por el mismo motivo. Por lo tanto, probablemente nunca tenga que importar nada directamente desde react-router . En cuanto a cuando usas
<Router history={browserHistory}>
vs
<Router>
En RRv4 no necesitará pasar la Historia del navegador, eso fue solo para versiones anteriores del enrutador.
Si aún está confundido, puede consultar los detalles de cada paquete here