【问题标题】:Possible to Interchange State Structures for Redux Store?可以为 Redux Store 交换状态结构吗?
【发布时间】: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 存储结构的性能的担忧是没有根据的?

【问题讨论】:

    标签: reactjs redux state store


    【解决方案1】:

    我认为你误解了 Redux 的目的。

    组件已经具有单独作用域的状态。 Redux 并不是要重新发明那个轮子。您描述的用例完全由组件状态处理。

    Redux 旨在保存与整个应用程序或至少 2+ 个不同部分相关的信息。

    你不应该试图过度使用 redux。它有它非常有价值的用途,但是当你需要螺丝刀时不要使用锤子。

    【讨论】:

    • 哇,感谢您对我的误解的有益澄清。
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2020-03-01
    • 2020-11-12
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多