在项目中使用 Context API 我以前会在异步操作创建者中使用 Redux?
Posted
技术标签:
【中文标题】在项目中使用 Context API 我以前会在异步操作创建者中使用 Redux?【英文标题】:Using Context API in a project I would have previously used Redux in - async action creators? 【发布时间】:2019-06-04 08:00:41 【问题描述】:所以我的大多数项目都非常简单,以至于 Redux 完全是矫枉过正(即使它一直运行得很好)——我将在一个新项目上使用 Context API(它可以轻松完成这项工作,而且更容易向其他开发人员解释并让他们继续工作)- Redux 有 Thunk 来处理异步操作。我认为我对事情的理解已经足够好,可以推断异步操作不会成为 Context API 的问题——Redux Thunk 实际上并没有向 Redux 添加异步功能——它只是让语法更容易接受。所以我的推理是,只要我编写代码来正确处理它们,Context API 就能够处理任何异步操作。这是对的吗,或者如果我想有效地处理异步操作,我需要坚持使用带有 Thunk 的 Redux 吗?
【问题讨论】:
【参考方案1】:我自己也有类似的问题,偶然发现了这篇文章,它讨论了 Redux 和 Context API 之间的主要区别:
来自https://www.academind.com/learn/react/redux-vs-context-api/
Context API(当前)不是为高频更新而构建的(引用 Sebastian Markbage,React 团队的话),它没有为此进行优化。 react-redux 的人在他们的包内部尝试切换到 React Context 时遇到了这个问题。
我的个人总结是新的上下文已经准备好用于低 频率不太可能更新(如语言环境/主题)。用起来也不错 它以与旧上下文相同的方式使用。 IE。对于静态值和 然后通过订阅传播更新。它还没有准备好 用作所有类似 Flux 的状态传播的替代品。 --- 塞巴斯蒂安·马克巴奇
因此,目前看来,您可能希望考虑使用 React Context 进行低频更新(例如主题更改、用户身份验证),但不将其用于应用程序的一般状态管理。
希望这会有所帮助。
【讨论】:
以上是关于在项目中使用 Context API 我以前会在异步操作创建者中使用 Redux?的主要内容,如果未能解决你的问题,请参考以下文章
警告:XXXXX 是Sun的专用API,可能会在未来版本中删除