kenberkeley / redux-simple-tutorial

Redux 简明教程。本教程深入浅出,配套入门、进阶源码解读以及文档注释丰富的 Demo 等一条龙服务

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

文末enhancer执行顺序图

wenbin-ding opened this issue · comments

原 createStore ————


return enhancer1(createStore)(reducer, preloadedState, enhancer2)
|
├———————→ createStore 增强版 1


return enhancer2(createStore1)(reducer, preloadedState, enhancer3)
|
├———————————→ createStore 增强版 1+2


return enhancer3(createStore1+2)(reducer, preloadedState, applyMiddleware(m1,m2,m3))
|
├————————————————————→ createStore 增强版 1+2+3


return appleMiddleware(m1,m2,m3)(createStore1+2+3)(reducer, preloadedState)
|
├——————————————————————————————————→ 生成最终增强版 store

感觉图中enhancer的第二次调用应该去掉吧。因为createStore调用的是compose返回的函数(称func),func被调用让enhancer被串联执行,在这个过程中,enhancer应该只有一次调用,func(createStore) => enhancer(createStore),后面的第二次调用应该是所有enhaner执行完成,返回最终版store,在原始createStore内,执行finalCreateStore(reducer, preloadedState)