vue路由跳转取消上个页面的异步请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue路由跳转取消上个页面的异步请求相关的知识,希望对你有一定的参考价值。

参考技术A 背景:我们经常会遇到当前页面未加载完毕时跳转路由或者返回操作, 但是通过network会发现, 若网络环境较差的情况下, 会一直pending, 切换路由后在network中添加新的请求但是正在pending的请求依然存在. 当我们在项目中做了一个上拉加载分页的时候会一直加载中, 用户等待不耐烦后可能会主动触发返回操作, 但是此刻即使用户触发返回操作, 加载分页的请求还是存在, 页面还是会一直提示加载中, 直到该请求加载成功或超时才肯罢休。最终给用户造成一些不必要的结果,同时也对web性能造成一定的影响。

那么如何解决这个问题呢,方法就是监听路由,在路由切换前将上个页面的请求取消。

第一步:

axios请求头设置

第二步:

利用vuex,新建一个store.js,将取消方法cancel放到数组中,然后在路由守卫中把数组中存有的cancel方法都执行

第三步:

监听路由

到此就可以解决路由跳转后上个页面的请求还在pending的状态啦

如果想去掉控制台的console.error

至此完美解决,亲测有效!!!

以上是关于vue路由跳转取消上个页面的异步请求的主要内容,如果未能解决你的问题,请参考以下文章

Vue--自定义404页面 & 路由钩子&路由钩子与异步请求

vue路由切换终止请求

vue页面跳转取消上一个页面请求

Ajax取消相关的那些事

vue路由传参,刷新之后参数还在的问题

vue axios异步请求django