react-router vs react-router-dom,何时使用一个或另一个?


123

两者都有路由,链接等。何时使用一个或另一个?我真的很困惑在哪里使用每个。服务器端?客户端?

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

在某些示例中,您需要传递历史记录,而在其他示例中则不需要。该怎么办?

<Router history={browserHistory}>

<Router>

何时使用一个或另一个非常令人困惑,任何帮助都值得赞赏。


Answers:


151

react-router包含react-router-domreact-router-native之间的所有公共组件。什么时候应该使用另一个?如果您在网络上,则react-router-dom应该具有所需的一切,因为它还可以导出所需的常用组件。如果您使用的是React Native,则出于相同的原因,react-router-native应该具有所需的一切。因此,您可能永远不必直接从react-router导入任何内容。就您使用时

<Router history={browserHistory}>

<Router>

在RRv4中,您无需传递浏览器历史记录,这仅适用于路由器的早期版本。

如果您仍然感到困惑,可以在此处查看每个包装的详细信息


2
我们应该从项目中删除react-router还是会影响react-router-dom?是React-Router软件包必须与React-Router-dom一起使用吗?
约吉

3
@snAtchnAren不是强制性的。如果您已经安装了“ react-router-dom”,则永远不需要“ react-router”软件包。
泰勒·麦金尼斯

2
如果我在react-router上使用react-router-dom,它会减小捆绑包的大小吗?
弗里申克18'May

26

react-router-dom是一个react-router优点:



6

在v4中,react-router导出核心组件和功能。react-router-dom导出DOM感知组件,例如<Link><a>)和(与浏览器的window.history交互)。

react-router-dom重新导出react-router的所有导出,因此您只需要从react-router-dom项目中导入。


但是您需要npm分别安装react-router和react-router-dom吗?
joedotnot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.