react-router vs react-router-dom, quando usar um ou outro?


123

Ambos têm rota, link, etc. Quando usar um ou outro? Estou muito confuso sobre onde usar cada um. Lado do servidor? Do lado do cliente?

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

Em alguns exemplos, você precisa passar a história, em outros não. O que fazer?

<Router history={browserHistory}>

vs

<Router>

É realmente confuso quando usar um ou outro, qualquer ajuda apreciada.


Respostas:


151

react-router contém todos os componentes comuns entre react-router-dom e react-router-native . Quando você deve usar um em vez do outro? Se você estiver na web, o react-router-dom deve ter tudo de que você precisa, pois também exporta os componentes comuns de que você precisa. Se você estiver usando o React Native, o react-router-native deve ter tudo de que você precisa pelo mesmo motivo. Portanto, você provavelmente nunca terá que importar nada diretamente do react-router . Tanto quanto quando você usa

<Router history={browserHistory}>

vs

<Router>

No RRv4 você não precisa passar o browserHistory, que era apenas para versões anteriores do roteador.

Se você ainda está confuso, pode verificar os detalhes de cada pacote aqui


2
devemos remover o react-router do projeto ou afeta o react-router-dom ?? Esse pacote react-router é obrigatório para trabalhar com react-router-dom?
YÒGÎ

3
@snAtchnAren Não é obrigatório. Você nunca deve precisar do pacote "react-router" se já instalou "react-router-dom".
Tyler McGinnis

2
Se eu usar o react-router-dom em vez do react-router, isso diminuirá o tamanho do meu pacote?
Vrishank

26

react-router-dom é uma react-routervantagem:



6

Na v4, o react-router exporta os principais componentes e funções. react-router-dom exporta componentes compatíveis com DOM, como <Link>(que renderiza <a>) e (que interage com a janela.history do navegador).

react-router-domreexporta todas as exportações do react-router, de modo que você só precisa importar react-router-domem seu projeto.


mas você precisa npm instalar o react-router e o react-router-dom separadamente?
joedotnot
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.