可以为 Redux Store 交换状态结构吗?
Possible to Interchange State Structures for Redux Store?
我正在努力实现的目标
我的 React 应用程序非常大,并且包含用户在浏览应用程序时翻阅的整页组件(想象一个全屏幻灯片,其中每张幻灯片都是交互式的并且包含不同的组件但具有相同的"feel" 彼此)。
我知道 Redux 严格强调单个 React 应用程序的单个商店,但是,像这样拥有一个巨大的商店似乎仍然有点过分,而且实施起来很糟糕:
obj {
slide1: { // a lot of state },
slide2: { // a lot of state },
slide3: { // a lot of state },
// more slide states
}
理想情况下, 因为每张幻灯片完全不依赖于彼此,当一个幻灯片组件安装时,该组件 单独 将 utilize/create Redux store 它认为合适,但是当用户移动到下一张幻灯片时,store 被清空,为新的幻灯片组件提供一个新的状态采用。我可以想象,在任何幻灯片 X 上,商店都会看起来像这样:
state {
slideX: { // a lot of state }
// no other slides
}
这个实现是possible/preferable,如果是,如何实现?
我的关注
我认为这里最大的问题是,例如,如果用户在幻灯片 3 上,并单击该幻灯片上的某个内容,然后将发送一个动作,它将不必要地触发所有 reducer 对于所有处于绝对不需要状态的幻灯片。 这似乎会对性能产生相当负面的影响,而且一般来说这似乎是一个糟糕的状态结构。 也许我对这种 Redux 存储结构的性能担忧是没有根据的?
我认为你误解了 Redux 的目的。
组件已经具有单独作用域的状态。 Redux 并不是要重新发明那个轮子。您描述的用例由组件状态完美处理。
Redux 旨在保存与整个应用程序或至少 2 个以上不同部分相关的信息。
你不应该过度使用 redux。它有它非常有价值的用途,但当你需要螺丝刀时不要使用锤子。
我正在努力实现的目标
我的 React 应用程序非常大,并且包含用户在浏览应用程序时翻阅的整页组件(想象一个全屏幻灯片,其中每张幻灯片都是交互式的并且包含不同的组件但具有相同的"feel" 彼此)。
我知道 Redux 严格强调单个 React 应用程序的单个商店,但是,像这样拥有一个巨大的商店似乎仍然有点过分,而且实施起来很糟糕:
obj {
slide1: { // a lot of state },
slide2: { // a lot of state },
slide3: { // a lot of state },
// more slide states
}
理想情况下, 因为每张幻灯片完全不依赖于彼此,当一个幻灯片组件安装时,该组件 单独 将 utilize/create Redux store 它认为合适,但是当用户移动到下一张幻灯片时,store 被清空,为新的幻灯片组件提供一个新的状态采用。我可以想象,在任何幻灯片 X 上,商店都会看起来像这样:
state {
slideX: { // a lot of state }
// no other slides
}
这个实现是possible/preferable,如果是,如何实现?
我的关注
我认为这里最大的问题是,例如,如果用户在幻灯片 3 上,并单击该幻灯片上的某个内容,然后将发送一个动作,它将不必要地触发所有 reducer 对于所有处于绝对不需要状态的幻灯片。 这似乎会对性能产生相当负面的影响,而且一般来说这似乎是一个糟糕的状态结构。 也许我对这种 Redux 存储结构的性能担忧是没有根据的?
我认为你误解了 Redux 的目的。
组件已经具有单独作用域的状态。 Redux 并不是要重新发明那个轮子。您描述的用例由组件状态完美处理。
Redux 旨在保存与整个应用程序或至少 2 个以上不同部分相关的信息。
你不应该过度使用 redux。它有它非常有价值的用途,但当你需要螺丝刀时不要使用锤子。