【问题标题】:Should I use Redux when component state is local当组件状态是本地时我应该使用 Redux
【发布时间】:2018-09-03 21:43:57
【问题描述】:

我有一个具有某些本地状态的组件(表单验证错误消息)。该组件不会从父级获取其状态,也不会将这些值传递给它的任何子级。

我的应用程序使用 Redux 进行全局状态管理。我应该将此状态推送到通过 Redux 进行管理,还是继续为这个特定组件使用本地状态。

【问题讨论】:

  • @Claies NO 标题。

标签: reactjs redux


【解决方案1】:

简单的答案是。 - 仅仅是因为您已经在实际使用它的唯一相关组件中拥有了所有必要的数据。

Redux (react-redux) 用于app level state 管理。

所以,更长的答案来了 - 如果您在某个时候决定需要各种组件中的数据,并且他们需要/应该随时可以访问,Redux 绝对是一个不错的选择。

这完全取决于数据量以及在整个应用程序中有效传递数据的需求。

另一方面,如果你只需要在 Parent - Children 组件之间传递数据,那么 Redux 可能会有点过头了,因为你仍然可以只使用 React 通过在组件之间传递(交换)值来实现它各种组件通过props

因此,如果您只需要该组件内的数据 (Component level state),那么 Redux 是不行的,因为它非常大,对您的情况没有任何用处.

【讨论】:

    【解决方案2】:

    听起来数据只需要这个组件,所以你不需要将它推送到 Redux 状态。

    【讨论】:

      【解决方案3】:

      是的,如果您采用不可变状态和连接组件的方式,您将避免不必要的重新渲染。

      在这种情况下,您可以将您的字段连接到它的状态,并仅在发生错误时重新呈现错误消息。

      【讨论】:

        【解决方案4】:

        我不会将它保存到 Redux 状态。 除非您在其他地方需要这些数据。

        【讨论】:

        • 所以我的 react-redux 应用程序可以在表单组件中拥有本地状态,也可以在存储管理器中保存全局状态。在我的应用程序中应用 redux 是否完全没问题,但我的应用程序在组件中仍然有一个本地状态,这是否会破坏在我的应用程序中作为一个整体实现 redux 的目的,因为我们实现了 redux 以将所有状态集中维护在存储中?跨度>
        • 不,你使用 redux 来处理所有需要共享的状态。我不会杀了它
        猜你喜欢
        • 1970-01-01
        • 2017-10-27
        • 1970-01-01
        • 2017-02-23
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 2016-11-09
        • 1970-01-01
        相关资源
        最近更新 更多