React-Router vs React-Router-Dom, wann den einen oder anderen verwenden?

122

Beide haben Route, Link usw. Wann soll man das eine oder das andere benutzen? Ich bin wirklich verwirrt, wo ich jeden verwenden soll. Serverseite? Kundenseite?

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

In einigen Beispielen müssen Sie den Verlauf übergeben, in anderen nicht. Was ist zu tun?

<Router history={browserHistory}>

vs.

<Router>

Es ist wirklich verwirrend, wann man das eine oder das andere benutzt, jede Hilfe wird geschätzt.

chulian
quelle

Antworten:

151

React-Router enthält alle gemeinsamen Komponenten zwischen React-Router-Dom und React-Router-Native . Wann sollten Sie eine über die andere verwenden? Wenn Sie im Web sind, sollte React-Router-Dom alles haben, was Sie brauchen, da es auch die allgemeinen Komponenten exportiert, die Sie benötigen. Wenn Sie React Native verwenden, sollte React -Router-Native aus demselben Grund über alles verfügen, was Sie benötigen. Sie müssen also wahrscheinlich nie etwas direkt vom React-Router importieren . Soweit Sie verwenden

<Router history={browserHistory}>

vs.

<Router>

In RRv4 müssen Sie browserHistory nicht weitergeben, das war nur für frühere Versionen des Routers.

Wenn Sie immer noch verwirrt sind, können Sie die Details zu jedem Paket hier überprüfen

Tyler McGinnis
quelle
2
Sollen wir den React-Router aus dem Projekt entfernen oder wirkt sich dies auf den React-Router-Dom aus? Ist dieses React-Router-Paket für die Arbeit mit React-Router-Dom obligatorisch?
YÒGÎ
3
@snAtchnAren Es ist nicht obligatorisch. Sie sollten das "React-Router" -Paket niemals benötigen, wenn Sie "React-Router-Dom" bereits installiert haben.
Tyler McGinnis
2
Wenn ich React-Router-Dom anstelle von React-Router verwende, wird dadurch die Größe meines Bundles verringert?
Vrishank
26

React-Router-Dom ist ein react-routerPlus:

Atombit
quelle
6

In Version 4 exportiert der React-Router die Kernkomponenten und -funktionen. React-Router-Dom exportiert DOM-fähige Komponenten wie <Link>(welche rendern <a>) und (die mit der window.history des Browsers interagieren).

react-router-domExportiert alle Exporte des React-Routers erneut, sodass Sie nur react-router-domin Ihr Projekt importieren müssen .

Sooraj
quelle
Aber müssen Sie sowohl den React-Router als auch den React-Router-Dom separat installieren?
Joedotnot