gpt4 book ai didi

reactjs - 何时使用原生 React.useReducer Hook 以及它与 Redux 的区别

转载 作者:行者123 更新时间:2023-12-03 13:00:16 25 4
gpt4 key购买 nike

所以,Hooks 从 React 16.8 开始可用。从他们的文档来看,Hooks 是功能组件中状态的替代者。基本的钩子(Hook)是:useStateuseEffectuseContext,但还有一些额外的钩子(Hook),其中之一是useReducer code>,看起来它使用与 Redux 相同的 action-dispatch 架构。

问题是它是否会因为相似而成为 Redux 的替代品?

它更适合特定项目吗?

它适合在哪里?

最佳答案

Redux 是一个鼓励以特定方式进行数据流的库。

react-redux 另一方面实现了 React 友好的方法,并提供了很多中间件和包装器,以便库使用者不必自己设置整个过程。

虽然 useReducer 是 Redux 工作方式的一部分,但它并不是 Redux 的全部。为了让您在组件中深入使用调度和状态,您仍然需要组合使用 useContextuseReducer,这就像重新发明轮子一样。

除此之外,useReducer 只是为您提供了一个 dispatch 方法,您可以使用该方法将普通旧对象作为操作分派(dispatch)。目前还没有办法向这些中间件添加中间件,例如thunksaga等等。

您还可以使用 useReducer 在您的应用程序中拥有多个 reducer ,但是将这些 reducer 组合成单个存储的方式仍然需要由开发人员管理。

还有React docs声明当状态逻辑复杂时,useReduceruseState 的替代方案

useReducer is usually preferable to useState when you have complex state logic that involves multiple sub-values or when the next state depends on the previous one. useReducer also lets you optimize performance for components that trigger deep updates because you can pass dispatch down instead of callbacks.

诸如 useContextuseReducer 等 Hook 的作用是消除小型应用程序对 Redux 的依赖。

关于reactjs - 何时使用原生 React.useReducer Hook 以及它与 Redux 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54576865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com