Flux + React.js - 缓存API请求响应

时间:2015-02-22 15:12:19

标签: javascript caching reactjs reactjs-flux flux

我需要有React+Flux+async API requests模式经验的人的输入。在以下情况下缓存api响应的更好方法是什么:

  • 我有3个列表的文章页面,每个文章都有相应的API端点来获取数据。

  • 每篇文章都有详细信息页面的UI,但是没有articleById端点,所以我只需要.find在获取数组中的必需文章

  • 我想在列表中生成仅1 请求并对其进行缓存,因此当我从列表中转到详细信息页面或返回列表时,将不会有API请求

  • 当我切换到另一个列表时,我应该发出请求并缓存它。

我想知道我应该在WebAPIUtils服务中缓存响应,这会产生实际请求吗?

或者更好地破解容器组件(对于所有3个列表都是一样的),以便知道它是否应该触发启动API请求的操作?

谢谢!

1 个答案:

答案 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