【问题标题】:react-router vs react-router-dom, when to use one or the other?react-router vs react-router-dom,何时使用其中之一?
【发布时间】:2017-07-29 19:35:34
【问题描述】:

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

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

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

<Router history={browserHistory}>

<Router>

何时使用其中一种确实令人困惑,感谢任何帮助。

【问题讨论】:

标签: reactjs react-router


【解决方案1】:

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

<Router history={browserHistory}>

<Router>

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

如果你还是一头雾水,可以查看每个包的详细信息here

【讨论】:

  • 我们应该从项目中删除 react-router 还是影响 react-router-dom? react-router 包是否必须与 react-router-dom 一起使用?
  • @snAtchnAren 这不是强制性的。如果您已经安装了“react-router-dom”,则永远不需要“react-router”包。
  • 如果我使用 react-router-dom 而不是 react-router,它会减小我的包的大小吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    只需使用 react-router-dom - react-router-dom 重新导出所有 react-router。 GitHub 上的链接回答 (what's the diff between react-router-dom & react-router?)。

    【讨论】:

      【解决方案4】:

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

      react-router-dom 重新导出所有 react-router 的导出,所以你 只需在您的项目中从react-router-dom 导入即可。

      (Source: GitHub)

      【讨论】:

      • 但是你需要分别npm install react-router 和 react-router-dom 吗?
      • @joedotnot no。 react-router-dom 拥有 react-router 的一切。请参见此处的示例。 reactrouter.com/web/example/basic
      【解决方案5】:

      在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-25
        • 1970-01-01
        • 2017-09-26
        • 2021-02-01
        • 2017-08-28
        • 2019-07-13
        • 2017-10-04
        相关资源
        最近更新 更多