【问题标题】:What is difference between react-router 4.0, react-router-dom and react-router-redux?react-router 4.0、react-router-dom 和 react-router-redux 有什么区别?
【发布时间】:2017-08-28 08:30:40
【问题描述】:

我正在 react-application 中实现路由。我对 react-router 4.0 相对于 react-router-redux 的优势感到困惑。我也对 react-router-dom 感到困惑。

react-router-redux、react-router 4.0 和 react-router-dom 各有什么优缺点?

【问题讨论】:

    标签: reactjs react-router react-router-dom


    【解决方案1】:

    react-router v4 是基础,构建块。提供用于创建路由解决方案的 API。

    react-router-domreact-router 的包装。它应该在浏览器中运行。

    react-router-redux 提供所谓的“受控路由器”,绑定到redux 商店。状态更改(导航)可以通过调度redux 动作以及点击链接来控制。

    最好的选择是从react-router-dom 开始(默认情况下会为您拉入react-router)。

    【讨论】:

    • 现在我的困惑是为什么我应该使用 react-redux-router,因为通过使用 react router 4.0,我们可以使用 this.props.history 访问位置和历史信息。 push('/') 什么场景下强制使用react-redux-router?
    • 您绝对不必使用react-router-redux。这是完全可选的。即使使用redux 进行状态管理,也不必使用它。
    • 是的,我们正在使用 redux 进行状态管理,那么我认为不需要使用 react-redux-router。谢谢
    • 但我认为如果我们不使用本地存储,react-redux-router 将有助于维护页面刷新中的状态。我说的对吗?
    • 根据我的经验,react-router-redux“仅”用于管理位置(推送、返回)作为对操作的响应。无论如何,您都可以读取位置状态。
    【解决方案2】:

    非常非常简单的解释!!!

    1. 无需直接使用react-router
    2. react-router-dom 用于“Web 应用程序”,react-router-native 用于“react 本机移动应用程序”。
    3. react-router-dom & react-router-native 在核心使用react-router
    4. react-router-dom 完美在 Redux 上运行良好,不需要 react-router-redux(由 Dan abramov 确认 - 的创建者还原)
    5. react-router-redux 的额外好处是您可以让您的路由器与应用程序状态保持同步。
    6. 简而言之 - 历史记录 + 存储 (redux) → react-router-redux

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 为什么要使用 react-redux-router 是为了维护 store 中的路由状态,而在 react-router 4.0 中我们可以将路由信息作为 props 访问,那么 react 的需要是什么? -redux-router?
      • 在我看来没有真正的需要,我不使用它。光是路由器就足够强大了。
      • 这就是我的困惑,因为单独的路由器很强大,所以如果使用 redux 进行状态管理,react-redux-router 就没有那么有用了。谢谢
      猜你喜欢
      • 2018-07-16
      • 2021-10-30
      • 2018-02-25
      • 2017-10-04
      • 2017-09-25
      • 2019-11-07
      • 1970-01-01
      • 2019-12-31
      • 2019-04-29
      相关资源
      最近更新 更多