redux、react-redux状态管理

redux

仅仅是用来管理组件的状态,需要满足以下条件:

  1. 用户使用方式复杂
  2. 不同的用户、不同使用方式(普通用户和管理员);
  3. 多个用户之间的协作;
  4. 与服务器有大量的交互;
  5. View有多个数据源。

其他场景下,能不用redux就不用,否则增加项目的复杂度。

三大特征:

  1. 单一的数据源,整个应用的state都存储与store对象中;
  2. state只读,只有触发Action(用于描述发生的事件)才能改变state;
  3. 使用纯函数(函数的返回值只能依赖于它的参数,相同的输入,只能得到相同的结果)执行修改。

由三个部分构成:

  1. Action,描述事件,是信息的载体
  2. Reducer,定义事件,规定整个应用的状态如何改变,根据Action更新Store中的状态
  3. Store,存储整个应用的状态

createStore(reducer,[preloadedState],[enhancer])

创建一个store来存放应用中所有的state,并且应用中只能有一个store。

参数reducers接受两个参数:当前的state和要执行的Action,返回新的state


Store

  1. getState(),获取state,
  2. dispatch(action),分发action,触发state变化的唯一途径
  3. subscribe(listener),用于注册回调,监听state变化
  4. replaceReducer(nextReducer),更新当前Store内的Reducer

常用getState()、dispatch(action)

combinReducers(reducers)

将多个reducer函数组合成一个reducer函数


applyMiddleware(...middlewares)

是包装了 store 的 dispatch 方法


bindActionCreates(actionCreators,dispatch)

把一个 value 为不同 action creator 的对象,转成拥有同名 key 的对象。


compose(...function)

组合组合多个函数

react-redux

:让组件层级中的connect()方法能够获取到Redux Store
一个容器的作用,实现store的上下文传递。
connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])

连接react组件和Redux 

你可能感兴趣的:(redux、react-redux状态管理)