【问题标题】:Usecase of redux over normal state mechanism in react native在 react native 中使用 redux 超过正常状态机制的用例
【发布时间】:2026-01-08 09:10:01
【问题描述】:

我正在开发反应原生应用程序。我遇到了用于应用程序状态管理的 redux。

假设我的应用程序中有欢迎游览,这应该是一次查看活动。我可以将其保存为正常状态并签入我的组件。

这也可以使用 redux 来实现,那么 redux 与正常状态有何不同。任何用例?

【问题讨论】:

    标签: android ios react-native redux react-redux


    【解决方案1】:

    React Native 中的 Redux 与普通 React 应用程序中的 Redux 没有什么不同,因此所有关于 Redux 与本地状态的建议都适用。

    引用 Redux 文档:

    使用本地组件状态很好。作为开发人员,您的工作是 确定构成您的应用程序的状态类型,以及每个状态的位置 应该住那块状态。找到适合你的平衡点,然后去 用它。

    确定数据类型的一些常用经验法则 放入 Redux:

    • 应用程序的其他部分是否关心这些数据?
    • 您是否需要能够根据这些原始数据创建进一步的派生数据?
    • 是否使用相同的数据来驱动多个组件?
    • 能够将此状态恢复到给定的时间点(即时间旅行调试)对您有什么价值吗?
    • 是否要缓存数据(即,如果它已经存在,则使用状态中的内容,而不是重新请求它)?

    引用 Redux 的作者 Dan Abramov:

    如果您只是在学习 React,请不要将 Redux 作为您的首选。 而是学习在 React 中思考。如果你找到一个真正的,请回到 Redux 需要它,或者如果你想尝试新的东西。但接近它 小心,就像您使用任何自以为是的工具一样。

    我最喜欢的:

    经验法则是:做不那么尴尬的事情。

    来源:

    【讨论】:

    • 是否使用相同的数据来驱动多个组件? - 我们不能把它保存在正常状态并在其他组件中获取它吗?
    • 我们绝对可以。这个问题背后的原因可能是,虽然将状态作为 props 传递给多个组件相对容易,但它很快就会失控。就我个人而言,除非你发现传递状态太复杂,否则我不会打扰 Redux。
    • 所以在正常状态下我必须将它传递给道具对吗?在 redux 的情况下,不需要将其传递给 props 吗?它在所有组件中都可用?
    • 是的,通常你使用道具传递状态。在 Redux 中,您仍然需要将状态映射到每个组件的 props,但主要区别在于状态来自 Redux 存储而不是您的父组件,因此在应用程序的任何位置访问它要容易得多。不过,这是以大量样板代码为代价的。
    • 你有 redux 在多个组件之间共享数据的例子吗?任何链接