redux 中间件

一、什么是中间件 middleware

中间件,又称中介软体,顾名思义,是便于软件各部分之间沟通的软件。

要理解中间件,关键点是要知道,这个中间件是连接哪些部分的软件,它在中间做了什么事,提供了什么服务。

二、redux-thunk

2.1 理念

Redux-thunk 是 redux 的中间件。

它主要设计用来处理项目中的异步操作,如获取接口数据等。

过去异步操作都会写在组件中,请求到数据再创建 action。这使得异步操作遍布很多组件文件中,维护不便,且不易于自动化测试。

Redux-thunk 主要理念是:将所有异步操作都放在 action 里面去处理,与业务组件代码解耦。而要实现这个理念,需要 action 处理异步逻辑,需要它是一个函数。

2.2 实现逻辑

Redux-thunk 处于 action 与 store 之间。扩展了 dispatch 函数,在原有功能之余增加了新的逻辑:若入参是函数,则直接执行。

如此,使得原本只能为 object 的 action 可以作为 function 处理更多逻辑。

Redux-thunk 没有提供很多 api,它的使用较为简单,就是在 action 中可以处理更多逻辑。

三、redux-saga

[GitHub - redux-saga/redux-saga: An alternative side effect model for Redux apps](https://github.com/redux-saga/redux-saga)

redux-saga 是 redux 的中间件。

它同样设计用来处理项目中的异步操作。

主要理念是:将所有异步操作单独放在一个文件里(也就是 saga.js 文件),当调用 dispath 时,除了会调用 reducer 函数,同样也会执行 saga.js 中与 action 匹配的函数,在这个函数中处理异步逻辑。

相比 redux-thunk,saga 的使用更加复杂,同时它的 api 更为丰富,可自定义的程度更高,适合于大型项目开发

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容