Redux 中间件(MiddleWare)
Redux的数据流
首先由View让Action Creator创建一个action,action通过dispatch()方法被直接派发给store,store将action和previousState传送给Reducer做数据处理,Reducer返回一个新的state给store,再由store将state返回给View。
类似thunk这样的Redux中间件,它就工作在Action和Store之间,可以认为主要是对Dispatch()方法的一种增强。有了thunk中间件,dispatch()方法在被传入action时,如果发现action是一个函数,则会执行该函数,而不是派发给store;同时,中间件thunk还给action函数传输了一个dispatch参数,方便在action函数执行一定操作之后,直接调用dispatch()对数据进行修改。
- thunk本质上是对解决异步问题的一种优化,它的思路是把异步操作放在Action中。
常用的redux中间件:
redux-logger : 记录action派发的日志
redux-saga : 拆分异步操作到一个单独的文件来管理
saga和thunk这样的中间件都是为了更方便的管理应用的 Side-effects(副作用)。