react-router vs react-router-dom,什么时候使用一个?

IT技术 reactjs react-router
2021-04-13 05:46:06

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

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

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

<Router history={browserHistory}>

对比

<Router>

何时使用一个或另一个真的很令人困惑,任何帮助表示赞赏。

5个回答

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

<Router history={browserHistory}>

对比

<Router>

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

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

如果我在 react-router 上使用 react-router-dom,它会减少我的包的大小吗?
2021-06-08 05:46:06
@snAtchnAren 这不是强制性的。如果您已经安装了“react-router-dom”,则永远不需要“react-router”包。
2021-06-10 05:46:06
我们应该从项目中删除 react-router 还是影响 react-router-dom ?react-router 包是否必须与 react-router-dom 一起使用?
2021-06-17 05:46:06

react-router-dom 是一个react-router加分项:

只需使用react-router-dom-react-router-dom重新导出所有react-router. GitHub 上的链接答案(&之间的区别是什么?react-router-domreact-router)。

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

react-router-dom重新导出所有 react-router 的导出,所以你只需要从react-router-dom你的项目中导入

来源:GitHub

@joedot不是没有。react-router-dom 拥有来自 react-router 的一切。请参阅此处的示例。 reactrouter.com/web/example/basic
2021-06-12 05:46:06
但是你需要 npm 分别安装 react-router 和 react-router-dom 吗?
2021-06-19 05:46:06

在 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