API
bindActionCreators
: 能自动将多个action创建函数绑定到dispatch()方法中createStore(reducer, [initialState])
:- 参数:
- renducer(function): 接受两个参数,分别是当前的state树和要处理的action,返回新的state树
- initialState: 初始时的state
- 返回值: 新的state树
- 参数:
Store
: 支持方法:- getState: 返回当前的state树,与最后一个reducer返回值相同.
- dispath(action): 分发action,触发state变化的唯一路径.
- subscribe(listener): 每当dispath action 的时候会执行回调.返回值是一个可以解绑变化监听的函数
- replaceReducer(nextReducer): 替换store当前用来计算state的reducer
combineReducers(reducers)
: 将多个reducer合并为一个- 参数: reducers(object) 一个对象
- 返回值: (Function): 一个调用reucers对象里所有reducer的reducer,并且构造一个与reducers对象结构相同的state对象
applyMiddleware(...middlewares)
:- 参数:
...middlewares(arguments)
: 遵循Redux middleware API函数.每个middlewares接受Store的dispath和getState函数作为命名参数,并返回一个函数.该函数会被传入被称为next的下一个middlewares的dispath方法,并返回一个接受action的新函数,这个函数可以直接调用next(action),或者在其他需要的时刻调用,甚至根本不用调用它,调用链中最后一个middlewares会接受真实的store的dispath方法作为next参数,并借此结束调用链,所以middlewares的函数签名是({getState,dispath}) => next => action- 返回指: (Function): 一个应用了middlewares后的store enhancer.这个store enhancer就是一个函数,并且需要应用到createStore.它返回一个应用了middleware的新的createStore.
- 参数:
bindActionCreators(actionCreators, dispatch)
: 惟一使用 bindActionCreators 的场景是当你需要把 action creator 往下传到一个组件上,却不想让这个组件觉察到 Redux 的存在,而且不希望把 Redux store 或 dispatch 传给它。参数
- actionCreators (Function or Object): 一个action creator,或者键值是action creator的对象
- dispath(Function): 一个dispath函数,由Store提供
- 返回值: 一个原对象类似的对象,只不过这个对象中的每个函数都可以直接dispath action,如果传入是一个函数,返回也是一个函数.
compose(...functions)
:从右到左组合多个函数