redux 中的中间件到底是什么?

What exactly is Middlware in redux?

好吧,我一直很难理解 redux 中的中间件和 applyMiddleware 以及 react-router-redux 中的 routerMiddleware。有人能用简单的术语向我解释一下它到底是什么吗? 谢谢。

它只是一个简单的层,可以在 dispatch(someAction(data)) 之后但在处理此操作之前转换/验证/记录数据。

中间件的常见用法是:

  • redux-thunk - 用于处理异步操作的中间件
  • redux-logger - 为每个动作调度记录中间件
  • 如果某些操作在当前状态下是错误的或不可接受的,您还可以验证/阻止它们
  • 您可以在实际处理之前转换一些数据
  • 您可以在那里提出一些额外的请求,将其与分派的数据混合,但这是一种不好的做法

你可以想象一些其他的用例,如果你需要在每次调度后做一些事情。例如,您可以存储当前 store/state 的副本,以便将来恢复数据。