在使用积极组合的React Redux项目中,最有效的方法是什么?

时间:2019-09-25 13:46:29

标签: reactjs performance react-redux composition

我正在开发一个项目,该项目使用积极的构图(每个组件的树中都有很多组件,每个组件中也有很多组件)并使用 Redux 来管理状态。

例如:

<ComponentA>
  <ComponentB>
    <ComponentC>
      ...
           <ComponentZ>
           </ComponentZ>
    </ComponenetC>
  </ComponentB>
</ComponentA>

每个组件都将具有它们自己的功能,可以更改应用程序的状态。

管理所有更改应用程序状态的功能的最有效方法是什么?

-使用一个容器组件将ComponentA与动作连接起来,并将所有功能向下传递到组件树中

示例:

<ComponentA
  funcB={this.props.funcB}
  funcC={this.props.funcC}
  ...
  funcZ={this.props.funcZ}
>

-每个组件都有其自己的容器,因此在组件树中将传递较少的功能,但是每个组件都需要一个额外的组件来进行连接:

<ContainerA>
  <ContainerB>
    ...
      <ContainerZ />
  </Container>
</ContainerA>

1 个答案:

答案 0 :(得分:1)

一种可能的方法是将父级连接到Redux,并让连接的父级驱动其子级,以便子级通过父级传递给他们的道具了解Redux存储更改。并通过调用作为道具传递的父母的方法来改变商店。但是,已关联的父级的孙子将自己连接到Redux商店,而不是他们的孩子,依此类推。

  

这些组件中的每个组件都有其自己的功能,可以更改应用程序的状态。

如果他们自己的功能更改了Redux存储的自己的子集(或分片),而其他组件则不需要了解这些子存储,或者如果整个存储太大,则可以考虑将其拆分为几个独立的存储。 Link