react-router vs react-router-dom、どちらを使用するのですか?


123

どちらにもルート、リンクなどがあります。どちらを使用するのですか?それぞれをどこで使用するか本当に混乱しています。サーバ側?クライアント側?

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

一部の例では、履歴を渡す必要がありますが、そうでない場合もあります。何をすべきか?

<Router history={browserHistory}>

<Router>

どちらか一方をいつ使用するかは本当に混乱します。


回答:


151

react-routerには、react-router-domreact-router-nativeの間のすべての共通コンポーネントが含まれています。いつどちらを使用するべきですか?Webを使用している場合、react-router-domには必要なすべてのコンポーネントが含まれているはずです。これにより、必要な共通コンポーネントもエクスポートされます。React Nativeを使用している場合、react-router-nativeには同じ理由で必要なものがすべて揃っているはずです。ですから、react-routerから何かを直接インポートする必要はおそらくないでしょう。使用する限り

<Router history={browserHistory}>

<Router>

RRv4では、browserHistoryを渡す必要はありません。これは、以前のバージョンのルーターの場合のみでした。

それでも混乱する場合は、各パッケージの詳細をここで確認できます


2
プロジェクトからreact-routerを削除するか、react-router-domに影響しますか?それはreact-router-domで動作するために、react-routerパッケージが必須ですか?
ヨギ

3
@snAtchnAren必須ではありません。「react-router-dom」がすでにインストールされている場合は、「react-router」パッケージは必要ありません。
タイラーマクギニス2017年

2
react-routerではなくreact-router-domを使用すると、バンドルのサイズが小さくなりますか?
フリシャンク2018年

26

react-router-domはreact-routerプラスです:



6

v4では、react-routerはコアコンポーネントと関数をエクスポートします。react-router-dom <Link><a>、(レンダリングする)や(ブラウザーのwindow.historyと相互作用する)などのDOM対応コンポーネントをエクスポートします。

react-router-domは、react-routerのすべてのエクスポートを再エクスポートするためreact-router-dom、プロジェクトからインポートするだけで済みます。


しかし、npmはreact-routerとreact-router-domの両方を個別にインストールする必要がありますか?
joedotnot
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.