0

想问的其实就是这类场景:
网络请求如果成功了,下次再触发的时候就不再向后台进行请求了。
最常见的就是标签页的点击事件了,比如首先进来是分类A,默认请求加载分类A的数据;然后点击分类B,请求加载分类B的数据;如果再回过头点击分类A,就不再向后台请求数据了,点击分类B也不再向后台请求数据了。请求成功的标签页就不再向后台请求数据了,直接显示之前请求的数据就可以了。当然,如果请求失败的标签页,再次点击就得再跟后台要数据了。
请问有什么实现方式?
备注:React项目

Jacko 16
2018-02-13 提问
3 个回答
1

其实就是做一个缓存处理嘛。

可以创建一个数组,数据结构可以是这样的:

const cacheData = [
  { tab: "", data: {} },
  { tab: "", data: {} },
  .....
]

每当你成功请求一个标签后,可以将对于的数据缓存里面,然后再次请求此标签的时候,去数组里面找,如果找到则使用缓存的数据,如果没找到,则请求API。

当然这种情况适用于, 标签对应的数据不变的情况下,如果数据可能随时改变,那你就要时时请求API.

0

用 redux 作为状态机。
在 dispatch action (请求数据的 action)时,先通过 getState() 去判断是否特定的数据是否已经存在,如果存在,则 return Promise.resolve(). 如果不存在,return fetch(https://xxxx).

0

很明显可以用状态管理。就跟其他人说的差不多,将数据缓存起来,需要用时拿来判断

撰写答案

你可能感兴趣的

推广链接