Vue router异步路由守卫进度

Vue router async route guard progress

我正在路由器的导航守卫中进行异步工作:

router.beforeEach((to, from, next) => {
  somethingAsync().done(next)
})

路由器是否公开任何信息告诉我它当前是 "loading"?还是我需要自己跟踪它?一旦异步工作完成,现在内容将在 <router-view></router-view> 中弹出。我目前的解决方案是跟踪我的 Vuex 商店中的活动工作,并在路由器视图旁边显示一个加载元素。

为了实现我认为您正在尝试的目标,我所做的是:

  • 使用 Axios 或其他具有拦截器的东西 https://github.com/mzabriskie/axios
  • 有一个组件有待处理请求的计数器。当该计数器大于 0 时,显示正在加载的元素。
  • 在那之后,您所要做的就是配置拦截器,以便在发出请求时计数器上升,并在响应时上升 收到计数器下降。

如果你需要,我可以给你看一些代码。