一、是什么
中间件(Middleware)是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的
在上篇文章中,了解到了Redux整个工作流程,当action发出之后,reducer立即算出state,整个过程是一个同步的操作
那么如果需要支持异步操作,或者支持错误处理、日志监控,这个过程就可以用上中间件
Redux中,中间件就是放在就是在dispatch过程,在分发action进行拦截处理,如下图:
二、常用的中间件
- Redux-thunk : 用于异步操作
- Redux-promise : 用于异步操作
- Redux-logger : 用于日志记录
三、实现原理
中间件本身是一个函数,该函数接收一个store参数,表示创建的仓库,该仓库并非一个完整的仓库对象,仅包含getState,dispatch。该函数运行的时间,是在仓库创建之后运行。
由于创建仓库后需要自动运行设置的中间件函数,因此,需要在创建仓库时,告诉仓库有哪些中间件。
中间件都需要通过applyMiddleWares进行注册,作用是将所有的中间件组成一个数组,一次执行,然后作为第二个参数传入到createStore中。
四、中间件的理解
Redux中,中间件就是放在dispatch过程,在分布action进行拦截处理。当action发出之后,reducer立即算出state,整个过程是一个同步的操作,如果需要异步操作,就需要中间件的支持。