reactjs - 使用 Redux Hooks 代替 connect() 是一个好的设计吗?

标签 reactjs redux react-redux react-hooks software-quality

目前,如何将 React 组件连接到 redux 存储有两个概念:connect()Redux Hooks 。我想知道使用钩子(Hook)是否被认为是好的软件设计。

  • 它损害了单一职责原则,因为组件不仅负责渲染数据,还负责连接到存储。
  • 组件和 Redux 之间存在紧密耦合。重用该组件或从 Redux 切换到另一个状态管理解决方案将很困难。

在软件质量方面,钩子(Hook)相对于 connect() 有什么优势吗?

最佳答案

connectuseSelector/useDispatch 都是从 React 组件与 Redux 存储交互的有效方法。然而,它们有不同的权衡。我在帖子 Thoughts on React Hooks, Redux, and Separation of Concerns 中讨论了这些权衡,以及我在 ReactBoston 2019 上的演讲 Hooks, HOCs, and Tradeoffs .

总结:是的,钩子(Hook)通常会导致组件在内部执行更多操作,而不是单独的组件执行不同的操作。两种方法都是有效的 - 问题在于您是否特别想要构建您的系统。

就“优点”而言:React-Redux 的 hooks 需要编写的总代码量比 connect 少,不添加间接,并且更容易与 TypeScript 一起使用。

关于reactjs - 使用 Redux Hooks 代替 connect() 是一个好的设计吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59878241/

相关文章:

javascript - 还原。我无法理解如何连接定义为扩展 React.Component 的类的组件以便读取存储

javascript - ReactJS + Redux,出现错误 "Failed prop type: Right-hand side of ' instanceof' is not callable”

javascript - 使用 React Async 渲染数组未定义

javascript - 第一次进入页面时,Reactjs 在 jquery/ajax 响应后不会重新渲染

javascript - 从列表中删除记录,Apollo GraphQL Optimistic UI Mutation

javascript - 在 React 中使用 componentWillRecieveProps 隐藏组件与处理 props

reactjs - 如何在 ReactJS 中链接 Action ?

javascript - ReactJS map onClick 获取值

javascript - 无法在我的组件中调用 redux 操作

javascript - Ajax调用问题