我有组件<Parent>和<Child>,<Parent>使用mapStateToProps()访问一个名为prop1的Redux状态属性。<Child>也需要访问prop1。把它作为一个道具传递给<Child>(如<Child prop1={this.props.prop1}>)与让<Child>通过mapStateToProps()获得它有什么区别?一种方法比另一种方法更好吗?
<Parent>
<Child>
mapStateToProps()
prop1
<Child prop1={this.props.prop1}>
dwbf0jvd1#
如果值已经存储在redux中,则应该使用redux。使用redux的主要缺点是锅炉板的绝对数量。然而,在本例中,您已经越过了这条线。
vq8itlhq2#
TLDR:通过mapStateToProps从Child获取
mapStateToProps
Child
在您提供的这个简化示例中,我认为最好的选择是直接在Child组件中获取prop1,以便于封装。这将使其他开发人员或将来的您在重新访问组件时更容易识别组件的依赖关系。这种方法的另一个好处是,它限制了更新,以防prop1发生变化。只有Child组件将被更新,而另一种方法将更新Parent及其所有子组件。然而,有一个用例可能更倾向于从Parent进行prop钻取。如果Child组件是一个可重用组件,并且您不想将其与特定的redux状态切片绑定。这样,您就可以让它不知道redux,并在另一个父组件中使用其他值作为prop来重用它。
Parent
2条答案
按热度按时间dwbf0jvd1#
如果值已经存储在redux中,则应该使用redux。使用redux的主要缺点是锅炉板的绝对数量。然而,在本例中,您已经越过了这条线。
vq8itlhq2#
TLDR:通过
mapStateToProps
从Child
获取在您提供的这个简化示例中,我认为最好的选择是直接在
Child
组件中获取prop1
,以便于封装。这将使其他开发人员或将来的您在重新访问组件时更容易识别组件的依赖关系。这种方法的另一个好处是,它限制了更新,以防
prop1
发生变化。只有Child
组件将被更新,而另一种方法将更新Parent
及其所有子组件。然而,有一个用例可能更倾向于从
Parent
进行prop钻取。如果Child
组件是一个可重用组件,并且您不想将其与特定的redux状态切片绑定。这样,您就可以让它不知道redux,并在另一个父组件中使用其他值作为prop来重用它。