关于 Redux-Saga
redux-saga
是一个旨在使应用程序副作用(即异步操作,如数据获取和非纯操作,如访问浏览器缓存)更易于管理、执行效率更高、易于测试以及更好地处理故障的库。
其思维模型是,saga 就像应用程序中的一个独立线程,专门负责副作用。redux-saga
是一个 redux 中间件,这意味着此线程可以使用正常的 redux 操作启动、暂停和取消,它可以访问完整的 redux 应用程序状态,并且也可以调度 redux 操作。
它使用 ES6 中称为生成器的特性来使这些异步流程易于阅读、编写和测试。(如果您不熟悉它们,这里有一些入门链接) 通过这样做,这些异步流程看起来就像您标准的同步 JavaScript 代码。(有点像 async
/await
,但生成器有一些我们需要的更强大的功能)
你可能之前使用过redux-thunk
来处理数据获取。与 redux thunk 不同的是,你不会陷入回调地狱,你可以轻松地测试你的异步流程,并且你的操作保持纯净。