[react] Redux的中间件是什么?你有用过哪些Redux的中间件?

haizhilin2013
2019-07-16 21:16:32 星期二
react
                    
                        
Redux的中间件是什么?你有用过哪些Redux的中间件?
Comments per page
< Page 1 / 1 >
zhaofeipeter 2020-08-06 08:15:38

view在redux中会派发一个action,action通过store的dispatch方法派发给store,store接收到action连同之前老的state一起传给reducer,reducer返回新的数据给store,store去改变自己的state,这是redux的流程。

redux中间件的中间指的是action和store之间,之前在redux中action只能返回一个对象,所以action返回的一个对象会直接派发给store,现在使用redux-thunk之后action可以返回一个函数了,action通过dispatch方法被传递给store,那么action和store之间就是dispatch这个方法。

实际上中间件就是对dispatch方法的一个封装或者说对dispatch方法的一个升级,最原始的dispatch方法接收到一个对象之后会把这个对象传递给store。

当把dispatch做了升级之后,比如说使用了redux-thunk 这个中间件,这个时候当调用dispatch方法给dispatch方法传递的参数是一个对象的话,那么dispatch就会把这个对象直接传递给store,跟之前我们写dispatch传递给它一个对象没什么区别,但是如果传递给dispatch方法是一个函数的话,这个时候dispatch已经升级了,它就不会把这个函数直接传递给store,它会先让这个函数执行,执行完了之后需要调用store的时候再去调用store。所以dispatch在这里会根据参数的不同执行不同的事情。

所以redux的中间件就是对store的dispatch做了个升级,升级之后dispatch就可以对象和函数都可以接收了。

当然中间件不止redux-thunk 这一个,实际上redux的中间件很多,比如redux-logger,redux-saga。redux-saga也是解决redux中异步问题的中间件,redux-thunk是把异步操作放在action里操作,而redux-saga的设计思想是把异步操作单独拆分出来放在一个文件里管理。

排行榜
今日答题答题排行
    未答的题
    更多>
      【关注作者公众号】 以面试驱动学习--前端剑解
      【公众号推荐】 不折腾的前端和咸鱼有什么区别

      学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布前端知识点(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!欢迎大家关注3+1开源项目!希望大家每人去学习与思考!(不要为了谁而来,要为自己而努力!

      【关注官方公众号】 每天4:30-5:00推送
      【公众号推荐】 一起折腾前端算法
      【微信学习群】 备注3+1