【问题标题】:Vue router async route guard progressVue路由器异步路由保护进度
【发布时间】:2018-01-07 22:30:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript vue.js vue-router vuex


    【解决方案1】:

    为了实现我认为你想要的目标,我所做的是:

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

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

    【讨论】:

    • 是的,这就是我今天在我的 Vuex 商店所做的 :) 我很好奇是否内置了某些东西,所以我没有重新发明轮子
    猜你喜欢
    • 2019-09-29
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多