React-router vs react-router-dom, когда использовать тот или иной?

124

У обоих есть Route, Link и т. Д. Когда использовать тот или иной? Я действительно не понимаю, где использовать каждый из них. На стороне сервера? Сторона клиента?

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

В некоторых примерах вам нужно передать историю, в других - нет. Что делать?

<Router history={browserHistory}>

против

<Router>

Это действительно сбивает с толку, когда использовать тот или другой, любая помощь приветствуется.

chulian
источник

Ответы:

152

response-router содержит все общие компоненты между response-router-dom и response-router-native . Когда следует использовать одно вместо другого? Если вы находитесь в Интернете, в react-router-dom должно быть все, что вам нужно, поскольку он также экспортирует общие компоненты, которые вам понадобятся. Если вы используете React Native, в response-router-native должно быть все необходимое по той же причине. Так что вам, вероятно, никогда не придется ничего импортировать напрямую из response-router . Насколько вы используете

<Router history={browserHistory}>

против

<Router>

В RRv4 вам не нужно передавать историю браузера, это было только для предыдущих версий маршрутизатора.

Если вы все еще не уверены, вы можете проверить детали каждого пакета здесь

Тайлер МакГиннис
источник
2
мы удалим response-router из проекта или это влияет на response-router-dom ?? этот пакет response-router обязателен для работы с response-router-dom?
YÒGÎ
3
@snAtchnAren Это не обязательно. Вам никогда не понадобится пакет «response-router», если вы уже установили «response-router-dom».
Тайлер МакГиннис
2
Если я использую response-router-dom вместо response-router, уменьшится ли размер моего пакета?
Вришанк
26

response-router-dom - react-routerплюс:

Atombit
источник
6

В версии 4 react-router экспортирует основные компоненты и функции. response-router-dom экспортирует компоненты, поддерживающие DOM, такие как <Link>(который отображает <a>) и (который взаимодействует с window.history браузера).

react-router-domреэкспортирует все экспортные файлы response-router, поэтому вам нужно импортировать только из react-router-domфайла project.

Sooraj
источник
но нужно ли вам установить npm отдельно как response-router, так и response-router-dom?
joedotnot