ReactNative之Redux入门(6)- 中间件认识以及其他中间件的推荐

注:本教程针对于有过React/ReactNative开发经验的人群。


其他中间件:
redux-persist
redux-sage
redux-router
redux-arena
......
还有很多拓展中间件,有兴趣的话可以寻找使用。

中间件的介绍
中间件就是一个函数,对store.dispatch方法进行了改造,在发出 Action 和执行 Reducer 这两步之间,添加了其他功能。
一:集成中间件

通过applyMiddlewares依次添加
import thunkMiddleware from ' redux-thunk ';
const store = createStore (
reducer ,
applyMiddleware ( thunkMiddleware )
) ;

在前面Demo中的Store.js文件中集成。

也可以添加多个中间件,要按顺序依次添加
const store = createStore (
reducer ,
applyMiddleware ( thunk , promise , logger )
) ;

有的中间件有次序要求,使用前要查一下文档。比如,logger就一定要放在最后,否则输出结果会不正确。

二:中间件是干什么的

看到这里,你可能会问,applyMiddlewares这个方法到底是干什么的?
它是 Redux 的原生方法,作用是将所有中间件组成一个数组,依次执行。下面是它的源码。

export default function applyMiddleware (... middlewares ) {
return ( createStore ) => ( reducer , preloadedState , enhancer ) => {
var store = createStore ( reducer , preloadedState , enhancer ) ;
var dispatch = store . dispatch ;
var chain = [] ;

var middlewareAPI = {
getState : store . getState ,
dispatch : ( action ) => dispatch ( action )
};
chain = middlewares . map ( middleware => middleware ( middlewareAPI )) ;
dispatch = compose ( ... chain )( store . dispatch ) ;

return {... store , dispatch }
}
}
上面代码中,所有中间件被放进了一个数组chain,然后嵌套执行,最后执行store.dispatch。可以看到,中间件内部(middlewareAPI)可以拿到getState和dispatch这两个方法。

其实中间件就是把store.dispatch进行改造,在发出 Action 和执行 Reducer 这两步之间,添加了其他功能。

完结。
更多用法请根据官方文档慢慢学习探讨。

英文原版: http://redux.js.org/
中文文档: http://www.redux.org.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值