从长远来看值得使用 Redux-Saga 吗?

Mak*_*dyk 9 version redux redux-saga

Redux-Saga 是一个 Redux 副作用管理器,据说已被弃用,并且不再维护。

然而,尽管 Redux-Saga 的最后一个 1.1.3 版本已经发布了近 3 年,但每周仍有超过 100 万开发者下载这个 NPM 包。

如果我继续长期使用 Redux-Saga,即使它的作者不再维护它,我可能会遇到什么问题?

mar*_*son 26

我是 Redux 维护者。

今天,我们特别建议不要在几乎所有用例中使用 sagas!

需要明确的是:Sagas 是一种强大的电动工具,就像电锯一样。如果您确实需要这种能力,那么拥有该工具就很重要。但大多数时候,您并不需要每天使用电锯。

实际上我刚刚就这个特定主题做了一次演讲:

Reactathon 2022:Redux 异步逻辑的演变

在那次演讲中,我描述了处理 Redux 应用程序中的异步逻辑和副作用的不同技术,并针对您今天应该使用的内容给出了一系列建议。我将在此处粘贴最后一张幻灯片以供参考:

我们今天的建议

您想解决什么用例?

数据获取

  • 使用 RTK 查询作为数据获取和缓存的默认方法
  • 如果 RTKQ 由于某种原因不完全适合,请使用createAsyncThunk
  • 如果没有其他办法的话,只能退回到手写的重击声
  • 不要使用 sagas 或 observables 来获取数据!

响应操作/状态更改、异步工作流程

  • 使用RTK“侦听器”中间件作为响应存储更新和编写长时间运行的异步工作流程的默认值
  • 仅在听众无法很好地解决您的用例的极少数情况下使用 sagas / observables

具有状态访问的逻辑

  • 使用 thunk 来实现复杂的同步和适度的异步逻辑,包括访问getState和分派多个操作。

  • @MaksymDudyk:saga 库工作正常,并且仍然得到维护 - 事实上,“它仍然得到维护”在几天前的一个问题中得到了证实:https://github.com/redux-saga/redux-saga/issues /2298 . (3认同)