我有一个关于在Reactjs中加载数据的位置的一般性问题。
主要组件称为App。然后App返回3个组件:Header,Body和Footer。现在在Body中,有一个Tab组件,它进一步细分为一些组件,包括一个名为" grids"的组件。
现在我希望我的数据(在过滤后)显示在网格中。
如果我做错了,请纠正我,但我的想法是:
将其传递给Body:
<Body data={this.state.data} />
在Body组件中,将其进一步传递为:
<Tabs data={this.props.data} />
在标签组件中,将其进一步传递为:
<Grids data={this.props.data} />
在网格中,编写所有方法来过滤数据并相应地显示/返回。
这是对的吗?
由于
答案 0 :(得分:1)
您概述的流程是正确的。另一种方法是使用context:设置到一个组件的上下文中的任何内容都可用于该组件的每个后代,而无需设置中间组件的道具。
Context comes with a warning though:
BTW,为了管理数据,我会使用像Flux或Redux这样的东西。随着应用程序的增长,直接在React组件中管理数据很快就会变得很痛苦。另一方面,Flux / Redux可以很好地扩展。使用上下文会使您的代码更难理解,因为它 使数据流不太清楚。它类似于使用全局 通过应用程序传递状态的变量。