【发布时间】:2018-03-01 23:03:39
【问题描述】:
我正在努力实现的目标
我的 React 应用程序非常大,并且包含用户在浏览应用程序时翻阅的整页组件(想想全屏幻灯片,其中每张幻灯片都是交互式的,并且包含不同的组件但具有相同的“感觉" 彼此)。
我知道 Redux 严格强调单个 React 应用程序的单个 store,但是,拥有这样一个庞大的 store 似乎仍然过大,而且实施得很糟糕:
obj {
slide1: { // a lot of state },
slide2: { // a lot of state },
slide3: { // a lot of state },
// more slide states
}
理想情况下,因为每张幻灯片根本不相互依赖,所以当一个幻灯片组件安装时,该组件单独将利用/创建它所看到的 Redux 存储合适,但是当用户移动到下一张幻灯片时,商店被清空,为新的幻灯片组件提供了一个新的状态。我会想象在任何幻灯片 X 上,商店都会看起来像这样:
state {
slideX: { // a lot of state }
// no other slides
}
这种实现是否可行/可取,如果可以,如何实现?
我的担忧
我认为这里最大的担忧是,例如,如果用户在幻灯片 3 上并单击该幻灯片上的某些内容,然后将调度一个动作,那么它将不必要地触发所有 reducers对于绝对不需要的状态下的所有幻灯片。 这似乎会对性能产生相当负面的影响,而且总体上看起来也是一个糟糕的状态结构。 也许我对这种 Redux 存储结构的性能的担忧是没有根据的?
【问题讨论】: