我正在开发一个使用激进组合的项目(每个组件在其树中都会有很多组件,并且每个组件也会有大量组件(并使用Redux来管理状态。
例如:
<ComponentA>
<ComponentB>
<ComponentC>
...
<ComponentZ>
</ComponentZ>
</ComponenetC>
</ComponentB>
</ComponentA>
其中每个组件都有自己的函数,可以更改应用的状态。
管理更改应用程序中状态的所有函数的最有效方法是什么?
- 使用将组件 A 与操作连接起来的容器组件,并在组件树中向下传递所有函数
例:
<ComponentA
funcB={this.props.funcB}
funcC={this.props.funcC}
...
funcZ={this.props.funcZ}
>
-每个组件都有自己的容器,因此在组件树中传递的函数较少,但每个组件都需要一个额外的组件才能进行连接:
<ContainerA>
<ContainerB>
...
<ContainerZ />
</Container>
</ContainerA>
一种可能的方法是将父级连接到 Redux,并让连接的父级驱动其子级,以便子级通过父级传递给他们的 props 了解 Redux 存储更改。并通过调用父级作为道具传递的方法来更改存储。但是,连接的父级的孙子孙女将自己连接到Redux商店,而不是他们的孩子,依此类推。
其中每个组件都有自己的函数,可以更改应用的状态。
如果它们自己的函数更改了自己的 Redux 存储子集(或切片(,而其他组件不需要注意这些子集(或切片(,并且如果整个存储太大,那么您可以考虑将其拆分为几个独立的存储。链接