redux、 react-redux、dva理解

状态管理
状态管理用来管理通讯复杂的组件树,使得数据流向变为单向,项目维护成本更低。
redux:
通过createStore创建仓库,保证store数据修改只支持reducers纯函数去修改。 通过combineReducers去将多组件rēducers组装在一起。我们就可以通过dispatch一个action去触发reducers. 但是redux没有提供存在副作用的api。所以使用redux-saga中间件来进行操作异步。在saga(effect)中,我们可以通过takeEvery来监听dispatch,通过call来调用异步方法,通过put来触发reducer,通过select来获取状态。

react-redux:
通过connect将容器组件与redux中的store关联,当store改变时,mapStateToProps这个回调函数就会执行,页面重新渲染。

但是:store调用dispatch后所有的reducer都会被执行,而每个reducer里面只能用switch case之类的流程控制语句去执行,而且命名也会混乱。所以dva的出现有了module概念,组件调用dispatch的时候可以通过指定type属性来直接调用相应module的effect或者reducer。

你可能感兴趣的:(reactjs)