想问的其实就是这类场景:网络请求如果成功了,下次再触发的时候就不再向后台进行请求了。最常见的就是标签页的点击事件了,比如首先进来是分类A,默认请求加载分类A的数据;然后点击分类B,请求加载分类B的数据;如果再回过头点击分类A,就不再向后台请求数据了,点击分类B也不再向后台请求数据了。请求成功的标签页就不再向后台请求数据了,直接显示之前请求的数据就可以了。当然,如果请求失败的标签页,再次点击就得再跟后台要数据了。请问有什么实现方式?备注:React项目
2 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
其实就是做一个缓存处理嘛。可以创建一个数组,数据结构可以是这样的:constcacheData=[{tab:"",data:{}},{tab:"",data:{}},.....]每当你成功请求一个标签后,可以将对于的数据缓存里面,然后再次请求此标签的时候,去数组里面找,如果找到则使用缓存的数据,如果没找到,则请求API。当然这种情况适用于,标签对应的数据不变的情况下,如果数据可能随时改变,那你就要时时请求API.
森栏
TA贡献1810条经验 获得超5个赞
用redux作为状态机。在dispatchaction(请求数据的action)时,先通过getState()去判断是否特定的数据是否已经存在,如果存在,则returnPromise.resolve().如果不存在,returnfetch(https://xxxx).
添加回答
举报
0/150
提交
取消