组件如何在Redux + ReactJS中进行交互?

时间:2015-12-09 11:12:26

标签: javascript reactjs redux

我感兴趣的是,当与Redux结合使用时,ReactJS组件如何相互交互?

根据我在todoApp tutorial中看到的内容,我创建了一个图表我理解交互(这可能完全不正确,这就是为什么我问这个问题)

my personal vision of how react + redux work

在此图表中,您可以看到五个基本实体:ProviderStoreContainerMainComponentComponent

为简单起见,让我们调用所有这个系统一个应用程序,实际上,它由一个复合组件MainComponent及其子组成。

Provider是一个组件,封装了StoreContainer个实例。

ContainerMainComponent的增强版,由Redux'提供支持。 dispatch()函数,包含来自currentState实例的Store的已定义(已过滤)数据。

Store只是currentState的持有者,实际应用程序'状态。

如前所述,

MainComponent是应用程序的核心组件,由Component个实例(可选)组成。

现在,此图中有四个Redux函数,即connectselectorreducerdispatch

selector会过滤state,提供MainComponent所需的数据并丢弃其他所有数据。

connect获取selector函数和MainComponent类,并提供新的Container类,然后在Provider组件中使用该类来填充{{ 1}}与数据。

MainComponent获取当前的应用程序'状态和已分派的操作(其目的是更改当前状态)并提供一个新的,已更改的应用程序'状态。

reducer是函数,将以前的所有函数连接在一起。这一个"更改" dispatch的状态。需要MainComponent,然后针对当前应用点击action'州。获取的状态和操作将传递给Store函数,该函数提供新的应用程序状态。这个新状态在reducer内存储为currentState,然后传递给Store函数,该函数会过滤状态,仅采用selector所需的内容,然后更新MainComponent的{​​{1}}并使其重新呈现。

这个简化的数据流/交互图是否正确?或者我有一些根本的误解?

谢谢!

0 个答案:

没有答案