加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 何时使用本机React.useReducer Hook以及它与Redux的

发布时间:2020-12-15 20:16:14 所属栏目:百科 来源:网络整理
导读:因此,Hook可以从React 16.8获得.从他们的文档中,Hooks作为功能组件中的状态替换者.基本的钩子是:useState,useEffect,useContext,但是还有一些额外的钩子,其中一个是useReducer,看起来它使用与Redux相同的动作分派架构. 问题是,如果它因为相似而取代Redux?
因此,Hook可以从React 16.8获得.从他们的文档中,Hooks作为功能组件中的状态替换者.基本的钩子是:useState,useEffect,useContext,但是还有一些额外的钩子,其中一个是useReducer,看起来它使用与Redux相同的动作分派架构.

问题是,如果它因为相似而取代Redux?

它更适合特定项目吗?

它适合哪里?

解决方法

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

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

虽然useReducer是Redux工作方式的一部分,但它并不是Redux的全部内容.为了使您能够使用调度和状态深入了解组件,您仍然必须使用useContext和useReducer组合,这就像重新发明轮子一样.

除此之外,useReducer只为您提供了一个调度方法,您可以使用该方法将普通旧对象作为操作进行调度.还没有办法向这些添加中间件,如thunk,saga等等.

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

另外React docs表示当状态逻辑很复杂时,useReducer是useState的替代方法

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.

这些钩子如useContext,useReducer做的是它们消除了对小应用程序的Redux依赖.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读