两者都有Route, Link等。什么时候使用一种或另一种?我真的不知道在哪里使用每一个。服务器端?客户端吗?

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

在某些例子中,你需要传递历史,在其他例子中则不需要。怎么办呢?

<Router history={browserHistory}>

vs

<Router>

什么时候使用一个或另一个真的很混乱,任何帮助都很感激。


当前回答

React-router包含了React-router -dom和React-router -native之间的所有公共组件。什么时候应该使用其中一种而不是另一种?如果你在网上,那么react-router-dom应该有你需要的一切,因为它还导出了你需要的常用组件。如果你正在使用React Native, React -router- Native应该有你需要的一切,出于同样的原因。所以你可能永远不需要直接从react-router中导入任何东西。只要你使用

<Router history={browserHistory}>

vs

<Router>

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

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

其他回答

React-router包含了React-router -dom和React-router -native之间的所有公共组件。什么时候应该使用其中一种而不是另一种?如果你在网上,那么react-router-dom应该有你需要的一切,因为它还导出了你需要的常用组件。如果你正在使用React Native, React -router- Native应该有你需要的一切,出于同样的原因。所以你可能永远不需要直接从react-router中导入任何东西。只要你使用

<Router history={browserHistory}>

vs

<Router>

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

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

react-router-dom是一个react-router plus:

<BrowserRouter> which is <Router history={browserNativeHistoryApiWrapper}/> proof: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/BrowserRouter.js some Link improvements for browser proof: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/Link.js and with <NavLink> — wrapper that knows if it's "active" or not proof: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/modules/NavLink.js

在v4中,react-router导出核心组件和函数。 react-router-dom导出dom感知的组件,如<Link>(其中 渲染<a>)和(与浏览器的交互 窗口。历史)。 react-router-dom重新导出所有react-router的导出,所以你 只需要从react-router-dom导入你的项目。

(来源:GitHub)

在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

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