为了账号安全,请及时绑定邮箱和手机立即绑定

点击标签页的时候,如果当前标签页有数据就不再请求?

点击标签页的时候,如果当前标签页有数据就不再请求?

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

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

其实就是做一个缓存处理嘛。
可以创建一个数组,数据结构可以是这样的:
constcacheData=[
{tab:"",data:{}},
{tab:"",data:{}},
.....
]
每当你成功请求一个标签后,可以将对于的数据缓存里面,然后再次请求此标签的时候,去数组里面找,如果找到则使用缓存的数据,如果没找到,则请求API。
当然这种情况适用于,标签对应的数据不变的情况下,如果数据可能随时改变,那你就要时时请求API.
                            
查看完整回答
反对 回复 2019-05-22
?
森栏

TA贡献1810条经验 获得超5个赞

用redux作为状态机。在dispatchaction(请求数据的action)时,先通过getState()去判断是否特定的数据是否已经存在,如果存在,则returnPromise.resolve().如果不存在,returnfetch(https://xxxx).
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 328 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信