react-router vs react-router-dom,何时使用其中一个?

chu*_*ian 98 reactjs react-router

两者都有Route,Link等.何时使用其中一种?我真的很困惑在哪里使用每一个.服务器端?客户端?

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

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

<Router history={browserHistory}>
Run Code Online (Sandbox Code Playgroud)

VS

<Router>
Run Code Online (Sandbox Code Playgroud)

什么时候使用其中一个,任何帮助表示赞赏,这真的很令人困惑.

Tyl*_*nis 117

react-router包含react-router-domreact-router-native之间的所有常用组件.什么时候应该使用另一个?如果您在网络上,那么react-router-dom应该拥有您需要的一切,因为它还会导出您需要的常用组件.如果您正在使用React Native,那么react-router-native应该拥有您出于同样原因所需的一切.所以你可能永远不必直接从react-router导入任何东西.就你使用时而言

<Router history={browserHistory}>
Run Code Online (Sandbox Code Playgroud)

VS

<Router>
Run Code Online (Sandbox Code Playgroud)

在RRv4中,您不需要传递browserHistory,这仅适用于以前版本的路由器.

如果您仍然感到困惑,可以在这里查看每个包裹的详细信息

  • 如果我在 react-router 上使用 react-router-dom,它会减少我的包的大小吗? (3认同)
  • 我们应该从项目中删除react-router还是会影响react-router-dom?是React-Router软件包必须与React-Router-dom一起使用吗? (2认同)
  • @snAtchnAren不是强制性的。如果您已经安装了“ react-router-dom”,则永远不需要“ react-router”软件包。 (2认同)

Ato*_*bit 22

react-router-dom是一个react-router加号:


Imr*_*ran 10

在 Github 上找到了这个。

注意:此包提供了 React Router 的核心路由功能,但您可能不想直接安装它。如果您正在编写将在浏览器中运行的应用程序,则应该安装react-router-dom. 同样,如果您正在编写 React Native 应用程序,则应该安装react-router-native. 这两个都将react-router作为依赖项安装。

来源:https ://github.com/remix-run/react-router/tree/main/packages/react-router


Ale*_*tyi 7

只需使用react-router-dom- react-router-dom全部导出react-router。GitHub上的链接答案(之间的区别是什么?react-router-domreact-router)。


Soo*_*ran 5

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

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