【发布时间】:2016-11-12 00:24:54
【问题描述】:
我是 Redux 的新手。我无法理解动作和减速器与直接修改商店的组件的价值。
在 Redux 中,您的 React 组件不会直接更改存储。相反,它们会发送一个动作——有点像发布一条消息。然后一个 reducer 处理这个动作——有点像消息订阅者——并改变状态(更准确地说,创建一个新状态)作为响应。
我觉得类似 pub/sub 的交互增加了间接层,这使得更难理解组件实际在做什么——为什么不直接让组件将新状态传递给 Redux 存储呢?将this.props.setReduxState 之类的东西注入到 React 组件中会不会是一件坏事?
我开始理解为什么状态本身需要不可变的价值(相关问题 -- Isn't Redux just glorified global state?),与检查更新以查看哪些组件道具需要更新以响应状态变化有关。我的问题是额外的 action/reducer 层与直接操纵商店。
【问题讨论】:
-
可预测性,在我看来是值得的。你看过mobx吗?这听起来像你的小巷github.com/mobxjs/mobx
-
通常你会希望一个动作在它到达reducer并创建一个新状态之前通过一个中间件链。您甚至可能希望阻止某些操作影响减速器。这对于诸如权限检查和异步任务之类的事情特别有用。