Reactjs - 数据流

时间:2016-10-01 07:59:30

标签: reactjs state

我有一个关于在Reactjs中加载数据的位置的一般性问题。

主要组件称为App。然后App返回3个组件:Header,Body和Footer。现在在Body中,有一个Tab组件,它进一步细分为一些组件,包括一个名为" grids"的组件。

现在我希望我的数据(在过滤后)显示在网格中。

如果我做错了,请纠正我,但我的想法是:

  1. 将主要组件App中的数据加载为状态:
  2. 将其传递给Body:

    <Body data={this.state.data} />
    
  3. 在Body组件中,将其进一步传递为:

    <Tabs data={this.props.data} />
    
  4. 在标签组件中,将其进一步传递为:

    <Grids data={this.props.data} />
    
  5. 在网格中,编写所有方法来过滤数据并相应地显示/返回。

  6. 这是对的吗?

    由于

1 个答案:

答案 0 :(得分:1)

您概述的流程是正确的。另一种方法是使用context:设置到一个组件的上下文中的任何内容都可用于该组件的每个后代,而无需设置中间组件的道具。

Context comes with a warning though

  

使用上下文会使您的代码更难理解,因为它   使数据流不太清楚。它类似于使用全局   通过应用程序传递状态的变量。

BTW,为了管理数据,我会使用像Flux或Redux这样的东西。随着应用程序的增长,直接在React组件中管理数据很快就会变得很痛苦。另一方面,Flux / Redux可以很好地扩展。