【问题标题】:Which library is better for offline support: redux-offline or react-native-offline?哪个库更适合离线支持:redux-offline 或 react-native-offline?
【发布时间】:2018-04-18 21:44:03
【问题描述】:

需要关于使用 redux 的大型 React Native 移动应用程序使用哪个库的建议? redux-offline 还是 react-native-offline

我需要定期检查连接状态,根据连接状态渲染视图,在离线时将操作添加到队列并在在线时运行它们,如果存在一些矛盾则取消操作,以及离线保存/重新水化数据。

【问题讨论】:

  • 我建议 redux-offline。

标签: react-native mobile redux react-redux redux-persist


【解决方案1】:

我在我的react-native 项目中使用redux-offline,效果很好。您正在寻找的所有功能都是礼物,如

  1. 定期检查连接状态
  2. 随时添加actionoffline(在线\离线)
  3. 设备上线后立即执行操作(此外,您可以决定重试间隔)
  4. 您可以编写自己的discard 方法来根据您的业务需求放弃任何操作。
  5. 它使用redux-persist自动persist\rehydrate数据。此外,您还可以提供自己的存储机制。

redux-offline 非常适合我,抱歉,我还没有使用过react-native-offline,所以无法为您提供任何基准。

【讨论】:

  • redux-offline 是否提供状态加密?
  • 不,开箱即用不支持加密state。但是如果你想加密store,你可以使用redux-persisittransforms
  • 面临一个问题,提交:操作没有被触发,知道可能是什么问题吗?我正在使用 redux saga 中间件
【解决方案2】:

我建议使用 react-native-offline。

React-native-Offline 提供:

  1. 更轻松地处理基于正则表达式或操作列表的操作的队列
  2. 一旦网络恢复,自动触发仅在线操作。
  3. 从维护的角度来看,您的 Saga 看起来更简洁、可读,包括在线/离线案例。

Redux-Offline 提供:

  1. 它基本上是在单独的在线和离线操作上
  2. 需要处理每个操作和相关的回滚

两者都为 redux-presist 提供了您喜欢的连接器。

【讨论】:

    【解决方案3】:

    我对两者都进行了评估,对于我的用例,我决定使用react-native-offline。我喜欢它与 redux-sagas 的集成和易于设置,当您希望您的用户离线执行许多操作时,它的 offlineQueue 非常方便。

    【讨论】:

    • 你如何处理离线 POST 动作?例如,假设用户按下了点赞按钮,该按钮随后会调用 API 来增加点数。 DB 中的点赞数,当该请求正在进行时,用户的网络断开了。
    • 我不确定请求是否在进行中,但如果用户在发出请求之前连接丢失,它会被放入 FIFO 离线队列,当网络连接恢复时,它会发送这些操作按照用户发送的顺序
    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-05-21
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多