reagire-router vs reagire-router-dom, quando usare l'uno o l'altro?


123

Entrambi hanno Route, Link, ecc. Quando usare l'uno o l'altro? Sono davvero confuso su dove usarli. Lato server? Dalla parte del cliente?

https://reacttraining.com/react-router/

In alcuni esempi è necessario passare la storia, in altri no. Cosa fare?

<Router history={browserHistory}>

vs

<Router>

È davvero confuso quando usare l'uno o l'altro, qualsiasi aiuto è apprezzato.


Risposte:


151

React-router contiene tutti i componenti comuni tra React-Router-Dom e React-Router-Native . Quando dovresti usarne uno sull'altro? Se sei sul web, react-router-dom dovrebbe avere tutto ciò di cui hai bisogno poiché esporta anche i componenti comuni di cui avrai bisogno. Se stai usando React Native, react-router-native dovrebbe avere tutto ciò di cui hai bisogno per lo stesso motivo. Quindi probabilmente non dovrai mai importare nulla direttamente da react-router . Per quanto riguarda quando usi

<Router history={browserHistory}>

vs

<Router>

In RRv4 non sarà necessario passare la cronologia del browser, che era solo per le versioni precedenti del router.

Se sei ancora confuso, puoi controllare i dettagli su ciascun pacchetto qui


2
dobbiamo rimuovere React-router dal progetto o influisce su React-Router-Dom ?? è che il pacchetto React-router è obbligatorio per lavorare con React-Router-Dom?
YÒGÎ

3
@snAtchnAren Non è obbligatorio. Non dovresti mai aver bisogno del pacchetto "react-router" se hai già installato "react-router-dom".
Tyler McGinnis

2
Se utilizzo React-Router-Dom su React-Router, ridurrà la dimensione del mio bundle?
Vrishank

26

react-router-dom è un react-routervantaggio:



6

Nella v4, React-router esporta i componenti e le funzioni principali. react-router-dom esporta componenti compatibili con DOM, come <Link>(che esegue il rendering <a>) e (che interagisce con window.history del browser).

react-router-domriesportare tutte le esportazioni di react-router, quindi devi solo importare da react-router-domnel tuo progetto.


ma hai bisogno di npm installare separatamente sia React-Router che React-Router-Dom?
gioedotnot
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.