【问题标题】:When not to use Redux in React-Native?什么时候不在 React-Native 中使用 Redux?
【发布时间】:2018-01-29 13:20:18
【问题描述】:

我最近开始研究 React-Native 应用程序,发现 Redux 很有帮助。但是根据我的理解,当我使用Reducers(主要用于使用WebServices API)时,数据存储在Components可以使用的应用级别状态。由于所有数据都处于应用级别状态,这对应用性能不是很苛刻。我在这里很困惑。请推荐一个出路。谢谢

【问题讨论】:

    标签: react-native redux react-redux


    【解决方案1】:

    Redux 单一存储不应影响您的应用程序性能。唯一的区别是所有状态对象都嵌套在一个树中,而不是存储在多个不同的嵌套组件中。
    相反,真正影响 React 应用程序性能的是渲染过程。在 React 中,不断更新组件的本地状态或 props 可能会导致性能下降,因为随之而来的,有时是无用的重新渲染。 如果您真的关心 Redux 性能,this article 可以解决您的大部分疑问并为您提供一些有用的见解。

    【讨论】:

    • 非常感谢。
    【解决方案2】:

    是的,数据将处于全局状态。这就是整个想法。为了在两个组件之间共享数据,我们需要将状态提升到公共父组件。对于复杂的应用程序,这仍然会导致数据流问题。 Redux 通过将状态一直提升到全局状态容器来解决数据流问题。从 redux 存储,状态通过 props 向下流向所有组件。这鼓励了 React 应用程序中的单向数据流。任何状态更改都是通过调度的操作对 Redux 存储进行的。并且从全局状态,数据流向容器和展示组件。

    应用性能通常不是问题。我知道有人使用了 100 多个减速器,并且性能很好。对于表单,最好为 TextInput 设置一些本地状态。并使用 onBlur 将状态保存到 redux 存储。

    什么时候不使用 Redux?对于只有几个屏幕的简单应用程序,Redux 可能有点过头了。对于简单的应用程序,您需要做的就是让所有状态都在根组件或容器组件中,并让它向下流向展示组件。如果你熟悉 Redux,你仍然可以使用 Redux。没有伤害。但是对于更简单的应用来说,易于使用本地状态。

    【讨论】:

    • 我可以在我现有的 react native 应用程序中使用 react redux 吗?它是否会像 this.state 那样影响我的本地状态。如果我使用 redux,我会这样做。状态停止工作....我知道这是个愚蠢的问题,但我刚刚开始对 redux 做出反应,这就是原因
    【解决方案3】:

    在我看来(只是我的看法):

    • Redux / Flux / 函数式编程
      • 更多碎片整理逻辑(存储、操作、reducer、视图、视图控制器、中间件)。更难重用应用程序的某些部分(需要复制和编辑大量源代码文件)
      • “白盒”逻辑。单向执行流程,用于测试操作、状态和复制问题的出色工具
      • 较难处理多线程,但仍然可行。需要使用函数式操作。
      • 在客户端执行更多逻辑(Facebook 开发它的原因之一)
      • 非常适合大型或协作式 UI 应用
    • MVC / OOP
      • 更统一的逻辑(模型、视图、控制器)。重用应用的各个部分要容易得多。
      • “黑盒”逻辑。执行流程不受控制。最终可能会陷入死锁、无限循环、难以复制的状态和问题。
      • 更容易处理多线程。
      • 更多逻辑在服务器上执行
      • 结构非常适合小型或可重复使用的 UI 应用程序

    关于非 UI 应用: OOP 更适合制作可重用的非 UI 库或没有事务/事件性质的应用程序。目前,几乎所有非 UI 应用程序的库仍然是用 OOP 构建的。将这两个世界结合起来会使生活变得困难。也许在未来,一切都会改变,但就目前而言,我不建议将 Redux / Flux 用于非 UI 应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      相关资源
      最近更新 更多