使用useSelector和useDispatch的Redux Hooks-为什么要使用它?

时间:2019-08-06 22:39:46

标签: javascript reactjs redux react-redux react-hooks

我刚刚转换了一个react组件,该组件有一个单独的文件用于“容器”,其中包含mapStateToProps / mapDispatchToProps连接包装器实现。

现在,我的GUI组件与redux特定的功能(如useSelector和useDispatch)混合在一起。现在没有道具被传入。

这似乎是最糟糕的设计模式。在GUI组件之前是道具的功能,无论它们来自redux还是来自父控件。

易于测试,并且非常清楚组件依赖于哪些属性。

所有这些都消失了!

有人能想到使用redux钩子的好处吗?也许我想念一些东西。

谢谢

2 个答案:

答案 0 :(得分:1)

唯一的好处是您不必将这些道具从父母那里一直传递到孩子们。严重的是,这是 only 的好处。因此,除非可行,除非您有充分的理由要使用钩子,否则请不要重构任何东西。

答案 1 :(得分:1)

即使使用hooks语法,您仍然可以执行2个组件:一个已连接,另一个则接收其props中的所有内容(并且可以更容易地进行测试)。那只是一种新语法,您不必强迫在同一组件中混合所有内容。

钩子的主要优点是可以编写自定义钩子。当您对自己所做的事情没有任何意义时,好处就很小了。