React-router vs React-router-dom, kiedy używać jednego czy drugiego?

123

Oba mają trasę, łącze itp. Kiedy używać jednego lub drugiego? Jestem naprawdę zdezorientowany, gdzie użyć każdego z nich. Po stronie serwera? Strona klienta?

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

W niektórych przykładach trzeba przekazać historię, w innych nie. Co robić?

<Router history={browserHistory}>

vs

<Router>

To naprawdę mylące, kiedy użyć jednego lub drugiego, jakakolwiek pomoc jest doceniana.

chulian
źródło

Odpowiedzi:

151

reagują routera, zawiera wszystkie elementy wspólne pomiędzy reakcji routerem-dom i reaguje, router natywnej . Kiedy należy używać jednego nad drugim? Jeśli jesteś w Internecie, to reakcja-router-dom powinna mieć wszystko, czego potrzebujesz, ponieważ eksportuje również typowe komponenty, których potrzebujesz. Jeśli używasz React Native, react-router-native powinien mieć wszystko, czego potrzebujesz z tego samego powodu. Więc prawdopodobnie nigdy nie będziesz musiał importować niczego bezpośrednio z routera React . O ile używasz

<Router history={browserHistory}>

vs

<Router>

W RRv4 nie musisz przekazywać browserHistory, to było tylko dla poprzednich wersji routera.

Jeśli nadal jesteś zdezorientowany, możesz sprawdzić szczegóły dotyczące każdego pakietu tutaj

Tyler McGinnis
źródło
2
czy powinniśmy usunąćreak-router z projektu czy ma to wpływ nareak-router-dom? czy ten pakiet respond-router jest obowiązkowy do pracy zreak-router-dom?
YÒGÎ
3
@snAtchnAren To nie jest obowiązkowe. Nigdy nie powinieneś potrzebować pakietu „React-router”, jeśli masz już zainstalowany „React-router-dom”.
Tyler McGinnis
2
Czy jeśli użyjęreak-router-dom zamiast reagującego routera, zmniejszy to rozmiar mojego pakietu?
Vrishank
26

reakcja-router-dom to react-routerplus:

Atombit
źródło
6

W wersji 4, React-router eksportuje podstawowe komponenty i funkcje. react-router-dom eksportuje komponenty zgodne z DOM, takie jak <Link>(które renderuje <a>) i (które współdziałają z window.history przeglądarki).

react-router-domreeksportuje wszystkie eksporty z re-routera, więc musisz tylko importować z react-router-domprojektu.

Sooraj
źródło
ale czy musisz osobno instalować npm zarówno react-router, jak i react-router-dom?
joedotnot