在项目中做异常处理时经常会遇到对网络错误的处理;处理的方案有很多,我只记录我在项目中使用的一种
首先添加网络错误页面(根据各自需求):
![](https://img-blog.csdnimg.cn/20191028153042715.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzI1NDUw,size_16,color_FFFFFF,t_70)
2.在router中添加错误页面的路由
{
path: '/networkError',
component: require('@/public-component/no-network.vue').default,
name: 'networkError',
meta: { title: '网络异常' }
}
这里面需要注意,不能使用路由懒加载
3.在APP.vue中添加监听网络
mounted() {
window.addEventListener('offline', ()=>{
// 网络由正常常到异常时触发
sessionStorage.locationUrl=window.location.href;
this.$router.replace('/networkError')
});
window.addEventListener('online',()=>{
window.location.href=sessionStorage.locationUrl
});
},
在断网时会记录下当前页面的地址,开网络时会重新跳转到当前页面;
但是这种情况针对连接到WiFi,但是WiFi无网络时,这种情况不适用,测试时我发现,WiFi无网络时,接口会请求超时,可以在接口请求超时时做处理,可以参见我的博客Vue项目请求超时处理