redux 中间件
redux react-redux redux-actions redux-persist redux-promise redux-thunk
redux 哪些常用的方法 createStore, applyMiddleware, combineReducers
redux 流程
- Store 相当于老板
- Reducers 相当于厨师
- Action Creators相当于服务员
- React Component 相当于顾客
顾客(React Component)想吃点东西,于是就把吃啥告诉了服务员(Action Creators)
服务员(Action Creators)就用菜单(dispatch)记录(action)下来,点了什么菜(type),和数量(data)。
然后把菜单( dispatch(action) )交给了老板(Store),老板就根据菜单上的内容,告诉给厨师(Reducers)让他炒什么菜
厨师(Reducers)收到老板的指示后,迅速的把菜做好。并端给(return newState)老板(Store)。
菜放到老板这后,老板(Store)就通知顾客(React Component)来取餐(getState)
(previousState, action):顾客如果开始点了一个蛋炒饭,后面又加了一个紫菜汤。
此时表示蛋炒饭之前的数据(previousState),紫菜汤表示现在的数据( action)
redux 异步流程
redux跟dva的区别:
redux数据流向类似,比redux更为简洁,省去定义常量和action,dva支持异步,redux如果想要支持异步得弄中间件,redux-saga或者chunk
- dva可以快速实现项目的初始化,不需要繁琐地配置
- 简化开发:将initState、saga、reducer集成到一个model里面统一管理,避免文件散落在各个文件里面,便于快速查找与开发同步action:执行了dispatch函数之后,对应的reducer
同步action:执行了dispatch函数之后,对应的reducer纯函数立即得到执行,reducer执行完了之后,state立即就改变了,此时用store.getState
函数,取到的是最新的state值
thunk的优点是可以再次被dispatch