目前,如何将 React 组件连接到 redux 存储有两个概念:connect()和Redux Hooks 。我想知道使用钩子(Hook)是否被认为是好的软件设计。
- 它损害了单一职责原则,因为组件不仅负责渲染数据,还负责连接到存储。
- 组件和 Redux 之间存在紧密耦合。重用该组件或从 Redux 切换到另一个状态管理解决方案将很困难。
在软件质量方面,钩子(Hook)相对于 connect()
有什么优势吗?
最佳答案
connect
和 useSelector/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/