Как установить маршрутизатор по умолчанию для дочернего маршрутизатора и установить страницу 404 в дочерних маршрутах?

#vue.js #vuejs2 #vue-router

#vue.js #vuejs2 #vue-маршрутизатор

Вопрос:

У меня есть главная страница с включенными дочерними маршрутизаторами. В этих маршрутизаторах у меня есть маршрутизатор по умолчанию (компонент целей) для главной страницы. Но когда я добавляю страницу 404, мой дочерний маршрутизатор все время устанавливается на страницу 404.

Как правильно установить дочерний маршрутизатор по умолчанию и установить страницу 404?

мои маршрутизаторы

 {
      path: '/',
      name: 'MainPage',
      component: MainPage,
        meta: {
            title: (route: any) => 'Goal list'
        },
        children: [
            {
                path: '/404',
                name: '404',
                component: NotFound,
            }, {
                path: '*',
                redirect: '/404'
            },
            {
                path: '',
                name: 'Goals',
                component: Goals,
                meta: {
                    title: (route: any) => route.name
                }
            },
            {
                path: '/profile',
                name: 'Profile',
                component: Profile,
                meta: {
                    title: (route: any) => route.name
                }
            },
            {
                path: '/goal-:id',
                name: 'Goal',
                component: Goal,
                meta: {
                    title: (route: any) => route.name
                }
            }
        ],
    },
  

Ответ №1:

попробуйте :

Вот так:

 {
      path: '/',
      name: 'MainPage',
      component: MainPage,
        meta: {
            title: (route: any) => 'Goal list'
        },
        children: [
            {
                path: '',
                name: 'Goals',
                component: Goals,
                meta: {
                    title: (route: any) => route.name
                }
            },
            {
                path: 'profile',
                name: 'Profile',
                component: Profile,
                meta: {
                    title: (route: any) => route.name
                }
            },
            {
                path: 'goal-:id',
                name: 'Goal',
                component: Goal,
                meta: {
                    title: (route: any) => route.name
                }
            },
            {
                path: '404',
                name: '404',
                component: NotFound,
            },
            {
                path: '*',
                redirect: '/404'
            },
        ],
    },
  

Комментарии:

1. У меня это не сработало — если я перейду / напрямую, он перейдет на страницу 404 вместо MainPage