@ivankalita

Почему не работает $router.addRoutes?

Ситуация такая, при инициализации в объекте route три объекта маршрутов:
var routes = [
    { name: 'a', path: '/', component: Start },
    { name: 'b', path: '/signup', component: SignUp, alias: '/sign' }
    { name: 'd', path: '*', component: NotFound }
]

При успешной авторизации пользователя в приложении ему должен быть доступен его личный кабинет по адресу: '/user'. Реализуется это путем добавления к объекту router нового объекта маршрута:
this.$router.addRoutes([{ name: 'c', path: '/user', component: User }]);

Но при попытке перехода по данному маршруту меня терпит неудача(( а именно редирект на маршрут 'd':
5cdd85c668549947825641.png
Как быть собстна, Господа?)
Vue.use(Router)

var routes = [
    { name: 'a', path: '/', component: Start },
    { name: 'b', path: '/signup', component: SignUp, alias: '/sign' },
    { name: 'd', path: '*', component: NotFound }
]

var router = new Router({
    mode: 'history',
    routes: routes
})

  export default {
    name: 'app',
    router: router,
    data: function() { 
      return {
        message: 'Hello'
      }
    },
    methods: {
      addNewUrl: function(mes) {
        this.$router.addRoutes([{ name: 'c', path: '/user', component: User }]);
        console.log(this.$router);  // получаю все те же самые три маршрута 'a', 'b', 'd'
    },


P.S. при вызове метода push "не отходя от кассы" переход успешен, но увы, при возврате к стартовой странице '/' или регистрации '/signup' повторный переход к '/user' невозможен(((
this.$router.addRoutes([{ name: 'c', path: '/user', component: User }]);
        this.$router.push('/user');

5cdd8769690e6368369344.png
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы