将状态从redux转移到组件的最佳实践是哪一种?

时间:2018-07-19 22:22:22

标签: reactjs redux react-redux

示例1:

组件1:

<Fragment>
   <span> Hello world</span>
   <component2 {...this.props} />
</Fragment>

export default connect(mapStateToProps)(component1)

(或)

示例2

组件1:

<Fragment>
   <span> Hello world</span>
   <component2  />
</Fragment>

第二部分:

    <Fragment>
       <span> Hello world</span>
    </Fragment>

export default connect(mapStateToProps)(component2)

在我的场景中,我想对组件1和组件2使用状态。所以我需要在组件1和2中都连接到redux,那么您会提出什么建议?哪种方法是最好的方法

谢谢

2 个答案:

答案 0 :(得分:1)

如果Second组件是First组件的子代,则应在First组件中映射StateToProps,然后通过prop将其传递给第二个组件。就像您在第一个示例中所做的一样!

答案 1 :(得分:1)

这真的取决于。通常,您尝试在组件层次结构中connect“高”并传递道具,以保持尽可能多的哑组件。但是要注意,如果连接确实很高,那么每次商店更改时,很多组件将一无所获(除非它们是纯净的)。在遇到问题之前不要进行优化,但请记住这一点。

我的经验法则是商店中每个“主题”有一个连接的组件。如果组件connects得到两件事,并将一件事传递给一个孩子,另一件事传递给另一个孩子,那么我考虑将连接向下移到每个组件。但是这里没有硬性规定,只有指导。