首页IT科技vuex 路由跳转(vue路由跳转取消上个页面的请求)

vuex 路由跳转(vue路由跳转取消上个页面的请求)

时间2025-09-19 11:30:56分类IT科技浏览6378
导读:场景描述:...

场景描述:

​ 项目中                  ,有一个Steps 步骤条                           ,包含三步审核         ,

当页面跳转时                  ,不管当前处于第几步                           ,都需要停止上个页面正在执行或还未执行的逻辑                  。

需求:当vue路由跳转时         ,取消执行上个页面之后的逻辑                           。

这个需求可以分为两个功能点

vue路由跳转时         ,停止上个页面正在请求的接口 除了停止接口                           ,还要停止接口请求之后的逻辑(主要是涉及到页面跳转的)

一 vue路由跳转时                  ,停止上个页面正在请求的接口

当页面发生跳转时         ,就没必要请求前一个页面的请求了         。若是网络差的情况下                           ,前一个页面接口访问失败的话                  ,还会跳出一些报错信息,对于用户来说                           ,这其实是非常不友好的                  。

因此                           ,当页面发生跳转时,停止请求上一个页面的接口                           。参考文章:https://www.cnblogs.com/zlfProgrammer/p/11058413.html

1. 利用vuex存储axios.CancelToken                  ,用来记录需要取消的ajax请求         。

​ axios.CancelToken可以用来取消ajax请求                           ,所以将需要取消的请求放到vuex         ,当路由发生跳转时                  ,直接取消         。

可复制的代码

import axios from "axios"; // 引入axios import store from "../store"; // 设置路由跳转取消上个页面的请求 axios.interceptors.request.use( (config) => { // 在发送请求之前做些什么 config.cancelToken = new axios.CancelToken(function(cancel) { store.commit("pushToken", cancel); }); return config; }, function(error) { // 处理请求错误 return Promise.reject(error); } );

2. 在main.js内进行路由拦截                           ,路由跳转取消上个页面的请求                           。

import router from "./router"; import store from "./store"; // 路由拦截---路由跳转取消上个页面的请求 router.beforeEach(function(to, from, next) { store.commit("clearToken"); // 取消请求 next(); });

二 在相关的接口中增加一层判断         ,若是路由不是当前页面的路由         ,停止后面的逻辑

​ 这种情况主要避免                           ,当路由跳转时                  ,此时前一个页面所有接口已经返回         ,但是后面有些显示逻辑                           ,比如:接口成功之后跳到一个新的页面                  。这个时候提前判断一下                  ,当前路由是否发生了变化,若是发生了变化                           ,则不继续后面的操作         。(在请求每一个接口前)

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win11刷新功能(Windows11系统怎么刷新? Win11显示刷新按钮的技巧)