为什么我不能直接调用减速机?

时间:2018-01-31 23:39:50

标签: reactjs redux

我阅读了有关redux及其原理的一些介绍博客文章。我仍然不知道为什么不应该直接调用reducer,而是通过调用参数中的数据的动作函数。有什么好处?

动作

export function setPerson(personData) {
  return {
   type: actionTypes.SET_PERSON,
   personData
  };
}

1 个答案:

答案 0 :(得分:0)

有几个原因:

  • 当前状态值保留在商店内,因此只能通过运行reducer来更新。只能通过调用store.dispatch()来运行reducer。因此,答案的一部分是“这就是它的工作方式”。
  • “Flux Architecture”引入了普通对象动作的概念,Redux被设计为Flux Architecture的实现。
  • 普通对象操作启用了Redux的许多关键功能:
    • 一段时间内发生的事件的历史记录,以及这些事件与状态更改的关联方式
    • 以更改已调度操作的顺序启用时间旅行调试
    • 允许中间件在调度时与操作进行交互,启用日志记录,修改操作和其他集中行为
    • 启用行为的序列化和持久性,例如通过网络同步多个商店。