鍍金池/ 問答/HTML/ vue中如何等app.vue中的js方法執(zhí)行后再執(zhí)行其他加載的組件的方法

vue中如何等app.vue中的js方法執(zhí)行后再執(zhí)行其他加載的組件的方法

目前項(xiàng)目中需要用戶不管從哪個頁面進(jìn)來,第一步都需要判斷token是否過期,如果過期需要去后端重新請求;
我是打算在入口組件app.vue中進(jìn)行判斷,如果過期就會去ajax請求token,可是還沒等到我token回來,首頁的組件就加載了,然后導(dǎo)致首頁中的接口報錯了(token過期的錯誤),所以如何等我app.vue里的結(jié)果返回再去掛載組件呢?
正愁呢!

回答
編輯回答
單眼皮

應(yīng)該在全局路由入口處攔截,而不是入口組件。

可以使用vue-router的beforeEach導(dǎo)航鉤子進(jìn)行全局路由攔截,如:

const router = new VueRouter({ ... })

router.beforeEach((to, from, next) => {
  if(tokenExprise){
    next()
  } else {
   // 刷新 token 
    reflashToken().then(()=>{
      next()
    })
  }
})

希望有幫助.

參見導(dǎo)航守衛(wèi)

2018年8月11日 03:30