Ich habe Problem, dass ich immer noch nicht beheben kann, nachdem ich einige Lösung google Suche versuchen.Tritt dead Schleife in router.beforeEach in vue, vue-Router
Ich bin mit router.beforeEach Token exist zu überprüfen.
Wenn ich kein Login und Eingang localhost/Übersicht in URL-Leiste direkt,
es braucht Login-Seite und URL umleiten zu localhost/login aber fehlschlagen und zeigen die Fehlermeldung umleiten unten überschritten
maximale Anrufstapelgröße
Wie kann ich die router.beforeJeach Methode ändern?
In router.js
import Vue from 'vue'
import store from '@/store/index'
import Router from 'vue-router'
import Overview from '@/components/Overview'
import Login from '@/components/Login'
Vue.use(Router)
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Login',
component: Login,
meta: {
requiresAuth: false
}
},
{
path: '/overview',
name: 'Overview',
component: Overview,
meta: {
requiresAuth: true
}
},
{
path: '*',
redirect: '/login',
meta: {
requiresAuth: false
}
}
]
}
router.beforeEach((to, from, next) => {
let token = store.state.token
if (token) {
if (to.query.redirect) {
next({path: to.query.redirect})
} else {
if (['/login'].includes(to.path)) {
next({path: '/overview'})
} else {
next()
}
}
} else {
let requiresAuth = to.matched.some(record => record.meta.requiresAuth)
if (requiresAuth) {
next({path: '/login', query: { redirect: to.fullPath }})
} else {
next()
}
}
})
export default router
Dank Ihrer Erinnerung. Ich habe das Problem gefunden .... Nur habe ich vergessen, eine '/ login' route config zu definieren. – tommychoo