【发布时间】:2016-12-14 21:45:27
【问题描述】:
我正在从事一个中型到大型的 react/redux 项目,我正在尝试找出 react/redux 的最佳实践。
例如,如果我有一个 饼图 组件,它将采用一个简单的数组作为道具:
[{
label: 'a',
value: 10
}, {
label: 'b',
value: 6
}, ...]
但我从 API 服务器获取的源数据可能是这样的:
{
a: {
value1: 15,
value2: 3,
value3: 7,
...
},
b: { ... }
}
现在我必须做一些计算来得到结果数据(比如 value1 -value2 + value3...也许是一些过滤器...),问题是,我应该把这个计算放在 reducer(我觉得它更像是一个getter,它会通过connect作为一个prop传递给一个组件,比如getCartProductsin this example),或者一个容器组件(在这种情况下可能是仪表板)?
我认为这两个选项都有意义:
在 reducer 中:我们可以保持组件干净,并将所有逻辑放在同一个位置。
在容器中:因为它与 UI 相关,并且如果计算的数据不可重用(仅适用于那个饼图),我们可以将这种计算保留在相关组件中。
如果我选择减速器,那么另一个问题来了。我应该将计算的数据保存在商店中吗?或者只是保存源数据,并在每次渲染组件时计算它? The old React doc 说您不应该将计算数据保存在状态中,不确定是否适用于 redux。
【问题讨论】:
标签: javascript reactjs redux react-redux