【问题标题】:React Context API and/or React-Redux-ThunkReact 上下文 API 和/或 React-Redux-Thunk
【发布时间】:2020-08-15 01:20:44
【问题描述】:
我使用 Context API 进行多商店管理,使用 React-Redux 和 thunk 进行单个商店管理。
我应该坚持一个而不是另一个,还是应该使用 React-Redux 来管理 React 的 Context API 上的多个商店。
我与一位朋友交谈过,他为他的公司与我相反,我想知道为什么但从未得到解释。
最佳做法是什么?
【问题讨论】:
标签:
reactjs
react-redux
react-hooks
store
【解决方案1】:
React Context API 有点难以管理,你可以使用redux 来代替管理状态。
react-redux 只是用作react 和redux 之间的连接器。
您可以执行以下操作以获得最佳实践:
- 对于多商店管理,您可以联系
redux。
- 要连接
react 和redux,您可以选择react-redux。
- 对于中间件,您可以选择
redux-thunk 或redux-saga。
我更喜欢redux-saga,因为它比redux-thunk更有优势。
【解决方案2】:
Redux 对于大型应用程序过去和现在都非常流行,在这些应用程序中,您需要能够维护单一的事实来源,但将商店的不同部分作为道具传递给各种组件。这个包的优点是它可以使调试更容易,并且如果实施正确,它非常健壮。
就 redux 中间件而言,它们通常用于异步集成。 Thunk 和 Saga 是两个流行的库。上下文应该能够在没有任何其他依赖项的情况下处理异步。
Context API 是作为 React 16.3 的一部分发布的新功能,可以更轻松地创建商店,但在我看来,它可能更难以扩展。我没有太多使用 Context API 的经验,但它已经变得非常流行,对于有经验的开发人员来说,redux 可以做任何事情。
我会说,当一种方法同样有效时,通常不鼓励同时使用这两种方法。话虽这么说,我管理的一个应用程序同时使用了这两者,因为当它第一次创建时 Context API 16.3 尚未发布,所以 redux 是整个应用程序的唯一状态管理器,但后来一些本地化组件状态被更新为拥有自己的上下文店铺。不过,我认为这不是最佳做法。
详细了解技术差异here。