我需要有React+Flux+async API requests
模式经验的人的输入。在以下情况下缓存api响应的更好方法是什么:
我有3个列表的文章页面,每个文章都有相应的API端点来获取数据。
每篇文章都有详细信息页面的UI,但是没有articleById端点,所以我只需要.find
在获取数组中的必需文章
我想在列表中生成仅1 请求并对其进行缓存,因此当我从列表中转到详细信息页面或返回列表时,将不会有API请求
当我切换到另一个列表时,我应该发出请求并缓存它。
我想知道我应该在WebAPIUtils服务中缓存响应,这会产生实际请求吗?
或者更好地破解容器组件(对于所有3个列表都是一样的),以便知道它是否应该触发启动API请求的操作?
谢谢!
答案 0 :(得分:3)
您应该让ListStore缓存处理以下操作的列表: LIST_CACHE:此操作将List推送到List缓存。
在List组件中,当它从ListStore收到更新时,尝试找到它应该显示的List并将其设置为其状态。
如果列表不存在,请等待ListStore发出更改事件,然后在ListStoreChanged
处理程序中尝试再次查找列表。
现在您需要决定何时为列表缓存发出API请求。一种可能的选择是在应用加载时为 all 列出API请求,然后将所有收到的列表分派给LIST_CACHE操作。
如果您还没有,请阅读:http://facebook.github.io/flux/docs/overview.html