使用redux组织并保持流量,资源和下陷清洁

时间:2018-07-07 10:37:53

标签: javascript reactjs redux react-router redux-saga

美好的一天,

我正在实现我的第一个大规模React + Redux + React Saga应用程序,我打算大规模扩展该应用程序,但仍有很多未解决的问题。据我了解,事情按以下方式起作用

  • Reducers->变异状态树
  • 操作->触发状态更改
  • 商店->真理的唯一来源
  • Redux Saga->副作用

我还使用连接的React Router尝试使事情保持纯净,并通过商店分发路线更改。

例如,由于我有很多与之交互的微服务,我尝试在每个微服务资源中保留一个reducer。

  • 用户信息(用于基本信息等)
  • 用户(用于登录,注册)
  • 通信首选项
  • 投资
  • UI(用于警报和消息传递)
  • 路由(由连接的路由器管理)

一开始效果很好,但是我对某些事情有些困惑。

  1. 我在哪里将副作用“连锁”在一起?

因此,例如,如果登录呼叫失败并且我发出警报,我是否会在我的传奇中分配一个操作进行登录?

如果我需要为通信首选项分派例如默认注册,是否可以在传奇中执行并采取一项措施?

如果该特定屏幕不想显示故障警报怎么办?我是否会将onError函数传递给我的动作以供我的传奇处理? (当前的业务要求是忽略登录屏幕上的特定故障)

  1. 我在哪里处理路由?

登录成功后,我可以轻松地从我的传奇中调度一个推送事件以路由,但是这似乎不纯,我想在其他地方处理,那么我是否需要对状态进行更改?这看起来很混乱。

  1. 处理返回会话

当前在我的应用中,我有一个令牌存储在localstorage中。当用户硬刷新页面时,我的应用程序顶部有一个组件,可通过分派操作使用户重新登录。

但是,这是异步的吗?在射击动作期间,孩子们仍会渲染吗?我担心的是,我有一条路由正在检查子状态值(isLoggedIn)。这可能会导致渲染出现竞争状况。

道歉,但是对于Redux应用程序,从理论到实践的应用对我来说是一个很大的进步。

我非常感谢阅读问题。

0 个答案:

没有答案