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.
reactjs
react-router
Chulian
fonte
fonte
Respostas:
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
vs
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
fonte
react-router-dom é uma
react-router
vantagem:<BrowserRouter>
qual é<Router history={browserNativeHistoryApiWrapper}/>
prova: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/BrowserRouter.js
algumas melhorias de link para o navegador
prova: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/Link.js
e com
<NavLink>
- wrapper que sabe se está "ativo" ou nãoprova: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/NavLink.js
fonte
Basta usar
react-router-dom
-react-router-dom
reexporta todosreact-router
. O link na resposta do GitHub ( qual é a diferença entrereact-router-dom
&react-router
? ).fonte
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-dom
reexporta todas as exportações do react-router, de modo que você só precisa importarreact-router-dom
em seu projeto.fonte