如何确定组件是否应具有自己的减速器功能?



如何确定组件是应该有自己的化简器函数,还是委托给祖先组件?

例如:

我有一个带有缩减器功能的HomePage组件,当通过路由器访问页面时,该组件会在商店中注册。

HomePage组件包含Grid组件的实例。

<div>
<Grid contents={contents} />
</div>

Grid组件需要重新计算调整视口大小时使用的编号列,因此我添加了一个与名为UPDATE_COLUMN_COUNTGrid关联的操作。

调度此操作的调用绑定到GridonComponentDidMount中的windowresize事件。

对于Grid,我应该在哪里向商店注册其减速器?

我是否应该在路由器中手动注册它(连同HomePage减速器的现有注册(?

我应该以某种方式将HomePage的减速器和Grid的减速器结合起来吗?

还是我应该响应HomePage减速器中的UPDATE_COLUMN_COUNT动作,而不是为此组件使用减速器?

就个人而言,我会为此使用本地组件状态,而不是存储在我的 Redux 存储中。这是一个纯粹的显示问题,不会影响任何其他组件,所以我不想使我的代码过于复杂。

如果不同组件可以在整个应用程序中使用此列数,则可能需要将其置于 Redux 状态。

通常,应用程序状态应与您使用的组件松散耦合,即您不要尝试将组件映射到化简器。相反,您可以通过组合化简器并为每个组件选择相关部件来创建相关的应用程序状态。

最新更新