React:是将某个东西作为道具传递给子组件更好,还是让子组件从Redux获取它更好?

gcmastyq  于 2022-11-24  发布在  React
关注(0)|答案(2)|浏览(94)

我有组件<Parent><Child><Parent>使用mapStateToProps()访问一个名为prop1的Redux状态属性。<Child>也需要访问prop1
把它作为一个道具传递给<Child>(如<Child prop1={this.props.prop1}>)与让<Child>通过mapStateToProps()获得它有什么区别?一种方法比另一种方法更好吗?

dwbf0jvd

dwbf0jvd1#

如果值已经存储在redux中,则应该使用redux。使用redux的主要缺点是锅炉板的绝对数量。然而,在本例中,您已经越过了这条线。

vq8itlhq

vq8itlhq2#

TLDR:通过mapStateToPropsChild获取

在您提供的这个简化示例中,我认为最好的选择是直接在Child组件中获取prop1,以便于封装。这将使其他开发人员或将来的您在重新访问组件时更容易识别组件的依赖关系。
这种方法的另一个好处是,它限制了更新,以防prop1发生变化。只有Child组件将被更新,而另一种方法将更新Parent及其所有子组件。
然而,有一个用例可能更倾向于从Parent进行prop钻取。如果Child组件是一个可重用组件,并且您不想将其与特定的redux状态切片绑定。这样,您就可以让它不知道redux,并在另一个父组件中使用其他值作为prop来重用它。

相关问题