Les deux ont Route, Link, etc. Quand utiliser l'un ou l'autre? Je suis vraiment confus sur où utiliser chacun. Du côté serveur? Côté client?
https://reacttraining.com/react-router/
Dans certains exemples, vous devez passer l’histoire, dans d’autres pas. Que faire?
<Router history={browserHistory}>
contre
<Router>
C'est vraiment déroutant de savoir quand utiliser l'un ou l'autre, toute aide appréciée.
react-router contient tous les composants communs entre react-router-dom et réagit-router-native . Quand devriez-vous utiliser l'un sur l'autre? Si vous êtes sur le Web, alors react-router-dom devrait avoir tout ce dont vous avez besoin, car il exporte également les composants communs dont vous avez besoin. Si vous utilisez React Native, react-router-native devrait avoir tout ce dont vous avez besoin pour la même raison. Ainsi, vous n'aurez probablement jamais à importer quoi que ce soit directement à partir de react-router . Aussi loin que quand vous utilisez
<Router history={browserHistory}>
contre
<Router>
Dans RRv4, vous n'avez pas besoin de transmettre browserHistory, c'était uniquement pour les versions précédentes du routeur.
Si vous êtes toujours confus, vous pouvez consulter les détails de chaque paquet ici
react-router-dom est un react-router
plus:
<BrowserRouter>
qui est <Router history={browserNativeHistoryApiWrapper}/>
quelques améliorations de liens pour le navigateur
preuve: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/Link.js
et avec <NavLink>
- un wrapper qui sait s'il est "actif" ou non
Il suffit d’utiliser react-router-dom
- react-router-dom
pour réexporter l’ensemble de react-router
. Le lien sur GitHub répond ( Quel est le diff entre react-router-dom
& react-router
? =).
En v4, react-router exporte les composants et fonctions de base. react-router-dom exporte des composants sensibles au DOM, tels que <Link>
(qui rend <a>
) et (qui interagit avec window.history du navigateur).
react-router-dom
réexporte toutes les exportations de react-router, il vous suffit donc d'importer à partir de react-router-dom
dans votre projet.