hooks会推翻redux吗?

Will hooks overthrown redux?

我一直在寻找关于 React 的钩子的问题,有一个问题一直萦绕在我的脑海中。 hooks会推翻redux吗?这是一个相当古老的讨论,所以首先介绍一下上下文:

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

有了自定义钩子,use reducer,以及深思熟虑的逻辑,为什么我还需要 Redux?我的意思是,将您的操作分派到单个减速器不是更高效吗?我找到了很多关于它的 material,但是其中 none 似乎有一个明确的答案(也许是因为没有?),所以我想知道你怎么看关于 Redux 的未来?

不,绝对不是。

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

总结:hooks 主要提供了一些方法来做你已经可以做的相同类型的事情,比如本地组件状态和避免通过上下文进行 prop-drilling。如果这就是你使用 Redux 的全部目的,那么你可能一开始就不需要 Redux。但是,hooks 有其局限性,选择 Redux 还有很多其他用例。

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

这个时候真的不好说。 redux 团队正在积极更新产品以包含一些不错的功能。然而,redux 的创建者之一 (https://github.com/acdlite) 似乎正在摧毁他的旧应用程序以支持 react 中的新功能。

话虽这么说,Redux 是一个经过测试且广为人知的库,很多人都对它感到满意。我不认为今天、明天或一年后用 redux 开始一个新项目是个坏主意。技术不会在一夜之间消亡。如果它有用,它就会继续存在。

不过,我确实认为 context 和 hooks 是 redux 的一个很好的替代品,但社区还不知道如何使用它。

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

我想补充一点,在我看来 Redux 已经失去了 一些 相关性...

我认为有 2 位玩家抢走了 Redux 在 React 市场中的很大份额:

  1. 人们已经学会了如何将 useReducer 与 useContext 结合起来 实施更简单的解决方案,无需第三方 依赖项。凭借 React 团队在背后的优势; 这意味着我们将得到紧密集成的持续改进 使用 React 框架。

  2. MobX 的用户群一直在增长。主要是因为它提供了一个观察者模式,比 Redux 需要更少的样板代码。 (这个可以讨论)。

因此,即使 Redux 仍然广泛用于 React 项目,我预计这将逐渐 减少 超时... - 没有双关语意...可能有点 ;) -

专为绿地开发!