慕的地6264312
通过实践,是可以在router.js里使用window的;最后的解决方案是这样子方法一://路由里面的代码{path:'/networkError',component:require('@/views/index/networkError.vue').default,name:'网络异常',meta:{title:'网络异常'}},不要使用路由懒加载,这样会动态加载组件,在断网情况下,自然行不通,直接用request引进来。然后再用navigator.onLine来判断window.addEventListener('offline',()=>{if(!navigator.onLine){router.push('/networkError');}});提示,这不是最好的解决方案,因为当有wifi却没有网络时,这个就不行了方法二:使用vuex+axios拦截器这种方法我只讲下思路:在vuex里存储一个全局变量,先设置为true,再在request.js里的axios拦截器里改变它的值,当获取不到数据时(这点比方法一要好),就设置为false,使用vuex的mit来更新。然后在用app.vue,使用这个变量,使用v-if来决定提示用户连接网络的图片要不要出现。当实话实说其实这种方法不是很好,因为vuex被大材小用了,而且,app.vue就该什么都没有。当然,如果实在想用这种方法,浪费Vuex,那可以新建一个networkError.vue文件,当断网时就跳进这个页面。这两个方法都不是最佳的解决方案,如果大佬有更好的解决办法,教教我吧