挂钩会否推翻redux?

时间:2019-04-10 20:18:18

标签: javascript reactjs redux flux react-hooks

我一直在搜索关于React的钩子的一段时间,一个问题一直困扰着我。挂钩会否推翻redux?这是一个相当古老的讨论,因此先介绍一下上下文:

很多人(包括React的团队)似乎认为redux和类似的东西只会适应新的API,从而使HOC的方法过时了,但是我的问题是:

使用自定义钩子,use reducer和深思熟虑的逻辑,为什么我根本不需要Redux?我的意思是,将您的操作分派给单个reducer不仅仅是表现更好吗?我找到了很多相关的材料,但是似乎没有一个明确的答案(也许是因为没有答案?),所以我想知道您对Redux的未来有何看法?

4 个答案:

答案 0 :(得分:3)

不,绝对不是。

我在Reactathon 2019 talk on "The State of Redux"中解决了这个问题。

总结:钩子主要提供了完成您已经可以做的相同事情的方式,例如本地组件状态和避免通过上下文进行钻探。如果这就是使用Redux的全部,那么您可能一开始就不需要Redux。但是,钩子有其局限性,选择Redux还有很多其他用例。

另外,请注意,我们是currently working on designing a public useRedux()-type hooks API for React-Redux

答案 1 :(得分:3)

这真的很难说。 redux团队正在积极更新产品,使其包含一些不错的功能。但是,redux(https://github.com/acdlite)的创建者之一似乎正朝着销毁其旧应用程序的方向,转而使用react中的新功能。

话虽如此,Redux是一个经过测试的知名库,很多人对此感到满意。我不认为在今天,明天或一年中与redux一起启动新项目不是一个坏主意。科技不会一overnight而就。如果它有目的,它将继续存在。

但是,我确实认为上下文和钩子是redux的不错替代品,但是社区根本不知道如何使用它。

答案 2 :(得分:0)

根据我的经验,开发人员倾向于滥用 Redux 。在大多数情况下,您不需要 Redux ,大​​多数事情都可以通过 Context / Render props / Hooks 来实现。当问一个问题“我需要在这里做Redux吗?”时,首先问“可以不用Redux吗?”。

Redux是一个很棒的工具,但仅在您实际需要时才使用。

答案 3 :(得分:0)

自发布此问题以来已经过去了一年。

我想补充一点,我认为Redux失去了 一些 的相关性...

我认为2个参与者在Redux在React市场中的地位上占有很大份额:

  1. 人们已经学习了如何将useReducer与useContext结合使用 实施更简单的解决方案,并且无需第三方 依赖性。拥有React团队支持的优势; 这意味着我们将不断获得紧密集成的改进 使用React框架。

  2. MobX的用户基础不断扩大。主要是因为它提供的观察者模式比Redux需要更少的样板代码。 (这可能会引起争议)。

因此,即使Redux在React项目中仍被广泛使用,我预计这会逐渐 减少 加班... -并非双关语...可能有点;)-

专门用于绿色领域的开发!