鍍金池/ 問答/HTML5  HTML/ vue中beforeEach在使用遇到的一個死循環(huán);

vue中beforeEach在使用遇到的一個死循環(huán);

在做vue項目時,寫了如下代碼,頁面卡死,出現死循環(huán),可能是邏輯有問題,大佬給理理

相關代碼

mounted() {

console.log("aaa")
let _this = this
this.$router.beforeEach(function (to,from,next) {
  if(to.meta.auth) {
    if(window.localStorage.getItem('user')) {
      console.log('路由設置了守衛(wèi),但是已經登錄了');
      next()
    } else {
      console.log('路由設置了守衛(wèi),但是我還沒有登錄')
      console.log(_this.$router, 'sfafasdfasdf')
      _this.$router.push({path:'/login'})
      next({
        path: to.path,
      })
    } 
  } else {
    console.log("路由沒有設置守衛(wèi)");
    next({
      path: to.path
    })
  }
}) 

}

我想在設置了守衛(wèi)的路由上,進行登錄后再跳轉到用戶之前想看的頁面

回答
編輯回答
貓館

圖片描述

      _this.$router.push({path:'/login'})
      next({
        path: to.path,
      })

改為

  next({
    path: ‘/login’,
  })
2017年12月24日 07:33
編輯回答
六扇門

圖片描述

2017年9月20日 21:49
編輯回答
尐飯團

你這就一直登陸跳登陸嘛,你要當to.path!='/login'并且沒有登陸的時候跳登陸啊。

2017年10月4日 09:03
編輯回答
你好胸
this.$router.beforeEach(function (to, from, next) {
  if (to.meta.auth) {
    if (window.localStorage.getItem('user')) {
      console.log('路由設置了守衛(wèi),但是已經登錄了');
      next()
    } else {
      console.log('路由設置了守衛(wèi),但是我還沒有登錄')
      next({path: '/login'})
    }
  } else {
    console.log("路由沒有設置守衛(wèi)");
    next()
  }
})  
2018年2月3日 17:06