深度 redux 整合

Redux 是 React 生态系统的重要组成部分。对于想要同时使用 React Router 和 Redux 的人,我们希望使其无缝集成。为此,有些人希望:

  1. 与 store 同步路由数据,并从 store 访问路由数据。
  2. 通过 action 来控制路由导航。
  3. 支持时间旅行调试模式

所有这些都需要更深入的集成。

而我们的推荐是:完全不在 redux 中存放路由数据,原因如下:

  1. 路由数据已经集成到了大多数关心它的组件。无论是来自 redux 还是路由器,您组件的代码都基本相同。
  2. 在大多数情况下,你可以使用 Link,NavLink 并 Redirect 进行导航操作。有时,在某些最初由操作启动的异步任务之后,您可能还需要以编程方式导航。例如,您可以在用户提交登录表单时调度操作。然后,您的 thunk,saga 或其他异步处理程序对凭据进行身份验证,如果成功,则需要以某种方式导航到新页面。这里的解决方案只是将 history 对象(提供给所有路由组件)包括在操作的有效负载中,并且异步处理程序可以在适当的时候使用它进行导航。
  3. 路由更改对于时间旅行调试不太重要。唯一明显的情况是调试路由器/存储同步中的问题,但是如果根本不同步它们,则该问题将消失。

但是,如果您强烈希望与 redux 同步路由,则可以尝试使用Connected React Router,这是 React Router 和 Redux 的第三方绑定。

最后修改时间: 50 seconds ago