哪个库更适合离线支持:redux-offline 或 react-native-offline?
Posted
技术标签:
【中文标题】哪个库更适合离线支持:redux-offline 或 react-native-offline?【英文标题】:Which library is better for offline support: redux-offline or react-native-offline? 【发布时间】:2018-04-18 21:44:03 【问题描述】:需要关于使用 redux 的大型 React Native 移动应用程序使用哪个库的建议? redux-offline 还是 react-native-offline ?
我需要定期检查连接状态,根据连接状态渲染视图,在离线时将操作添加到队列并在在线时运行它们,如果存在一些矛盾则取消操作,以及离线保存/重新水化数据。
【问题讨论】:
我建议 redux-offline。 【参考方案1】:我在我的react-native
项目中使用redux-offline
,效果很好。您正在寻找的所有功能都是礼物,如
-
定期检查连接状态
随时添加
action
到offline
(在线\离线)
设备上线后立即执行操作(此外,您可以决定重试间隔)
您可以编写自己的discard
方法来根据您的业务需求放弃任何操作。
它使用redux-persist
自动persist\rehydrate
数据。此外,您还可以提供自己的存储机制。
redux-offline
非常适合我,抱歉,我还没有使用过react-native-offline
,所以无法为您提供任何基准。
【讨论】:
redux-offline 是否提供状态加密? 不,开箱即用不支持加密state
。但是如果你想加密store
,你可以使用redux-persisit
的transforms
。
面临一个问题,提交:操作没有被触发,知道可能是什么问题吗?我正在使用 redux saga 中间件【参考方案2】:
我建议使用 react-native-offline。
React-native-Offline 提供:
-
更轻松地处理基于正则表达式或操作列表的操作的队列
一旦网络恢复,自动触发仅在线操作。
从维护的角度来看,您的 Saga 看起来更简洁、可读,包括在线/离线案例。
Redux-Offline 提供:
-
它基本上是在单独的在线和离线操作上
需要处理每个操作和相关的回滚
两者都为 redux-presist 提供了您喜欢的连接器。
【讨论】:
【参考方案3】:我对两者都进行了评估,对于我的用例,我决定使用react-native-offline
。我喜欢它与 redux-sagas 的集成和易于设置,当您希望您的用户离线执行许多操作时,它的 offlineQueue
非常方便。
【讨论】:
你如何处理离线 POST 动作?例如,假设用户按下了点赞按钮,该按钮随后会调用 API 来增加点数。 DB 中的点赞数,当该请求正在进行时,用户的网络断开了。 我不确定请求是否在进行中,但如果用户在发出请求之前连接丢失,它会被放入 FIFO 离线队列,当网络连接恢复时,它会发送这些操作按照用户发送的顺序以上是关于哪个库更适合离线支持:redux-offline 或 react-native-offline?的主要内容,如果未能解决你的问题,请参考以下文章