react-native - 我应该如何在反应原生应用程序(Redux)中处理本地和云上的数据
问题描述
我有一个应用程序,其中将包含以下功能:
屏幕:
首页{ 显示所有类别的最新帖子(API 提供每页 30 个帖子)}
类别{显示所有类别列表}
By-Category {按类别显示最近的帖子(API 提供每页 30 个帖子)}
发布{显示带有评论的帖子详细信息}
User-Profile {显示用户个人资料及其最近的帖子(API 提供每页 30 个帖子)}
配置文件设置{显示可更新字段和更新按钮}
现在,我感到困惑的地方:
我应该在开始时用 API 填充整个商店,还是应该在打开每个屏幕时对它们进行 API 调用?
对于更新,比如如果用户喜欢帖子,那么我应该在 API 完成之前显示一个微调器或其他东西,还是应该立即更新本地存储值然后调用 API?
解决方案
可能有很多方法可以解决这个问题。我的是:
1)我将创建一个模型/管理器来处理也可以访问同一商店的 API 请求。例如,当屏幕安装时使用 Home.Manager.getNextPage(); 它已经知道如何处理 api 请求,也知道如何处理分页。
所以所有的计算都将在管理器中。当它获得数据时,它将用它更新商店。
2)当我构建一个包含喜欢的应用程序时,我也使用了本地数据。我的方法是从最后一个开始设置 10 秒的时间,这样如果用户喜欢多个帖子,我可以发送大量帖子。所以服务器不需要处理多个 tcp 连接,而是一个具有多个喜欢数据的连接。
重点是首先将其存储在本地(以防用户在我们更新服务器之前杀死应用程序),然后等待 10 秒(如果有新的),例如将其添加到数据数组中,然后再等待 10 秒(如果不只是发送)数据到服务器。在服务器返回它保存在您的数据库中之前,不要清理此本地数据
这样您就可以先显示动画,而无需让用户等待来自服务器的反馈。
推荐阅读
- r - 如何将行插入R中空数据框中的单列?
- javascript - 如何使用纯JS从对象数组中获取数字的总和?
- microprofile - Microprofile java.lang.ClassCastException: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream 不兼容
- javascript - MobX 和观察对象及其作为函数的属性
- javascript - 你能用 JavaScript 控制家外的设备吗?例如,使用网页上的“关闭”按钮关闭 Raspberry Pi 3
- exception - Visual Studio 2015 - Nuget 异常 - 必须在 UI 线程上调用 GetFullVsVersionString
- sql - 将整个 SQL Server 表导入 R
- c++ - 如果代码使用“隐式布尔转换”。可以有效的 c++03 代码,在 c++11 中中断吗?
- kotlin - 计算所有列表元素的总和,直到满足条件
- vuejs3 - vue2这样写成功,但是使用vue3会提示如下问题