我刚刚转换了一个react组件,该组件有一个单独的文件用于“容器”,其中包含mapStateToProps / mapDispatchToProps连接包装器实现。
现在,我的GUI组件与redux特定的功能(如useSelector和useDispatch)混合在一起。现在没有道具被传入。
这似乎是最糟糕的设计模式。在GUI组件之前是道具的功能,无论它们来自redux还是来自父控件。
易于测试,并且非常清楚组件依赖于哪些属性。
所有这些都消失了!
有人能想到使用redux钩子的好处吗?也许我想念一些东西。
谢谢
答案 0 :(得分:1)
唯一的好处是您不必将这些道具从父母那里一直传递到孩子们。严重的是,这是 only 的好处。因此,除非可行,除非您有充分的理由要使用钩子,否则请不要重构任何东西。
答案 1 :(得分:1)
即使使用hooks语法,您仍然可以执行2个组件:一个已连接,另一个则接收其props中的所有内容(并且可以更容易地进行测试)。那只是一种新语法,您不必强迫在同一组件中混合所有内容。
钩子的主要优点是可以编写自定义钩子。当您对自己所做的事情没有任何意义时,好处就很小了。