vuejs beforeRouteEnter.Отключить переход на URL, если пользователь вошел в систему - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу отключить перейти к URL "логин", если пользователь вошел в систему. Я не использую vuex.И я отправляю ajax из метода "beforeRouteEnter" (проверьте, что вход в систему и maiby получают данные на странице), но перед этим я иду на маршрут (я вижу страницу входа html-компонента и URL "/ login") и после перенаправления с этой страницы.

Как сделать то, что я вообще не пошел по указанному URL?

    beforeRouteEnter: (to, from, next) => {
        next(function (vm) {
            vm.$http.get('http://cake.vue.loc/api/checkLogin')
                .then(response => {
                    return response.json()
                })
                .then(response_data => {
                    if (response_data.status == 'success') {
                        vm.$router.push("/");
                    }
                });
        });
    }

1 Ответ

0 голосов
/ 14 сентября 2018

Возможно, вы захотите взглянуть на router.beforeEach вместо beforeRouteEnter. Фактически, как указано в документации: beforeRouteEnter вызывается до подтверждения маршрута, который отображает этот компонент.

Вот как бы вы сделали это с beforeEach:

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

router.beforeEach((to, from, next) => {
  let userIsLogged = // Call to your api
  if (to.name === "login" && userIsLogged) {
    // Redirect user to homepage
    return next({path: '/'})
  }
  // Let the user pass
  return next()
})

Надеюсь, это поможет!

...