Перенаправление vue-router на путь по умолчанию

Я хочу по умолчанию указать конкретную страницу, когда пользователь переходит к корневому пути т.е. когда используется идет на myapp.com Я хочу перенаправить их на myapp.com/defaultpage

Мой текущий код

index.js

import Full from '../containers/Full'
import DefaultView from '../views/DefaultView'

export default new Router({
  mode: 'history',
  linkActiveClass: 'open active',
  scrollBehavior: () => ({ y: 0 }),
  routes: [
    {
      path: '/',
      redirect: '/defaultview',
      name: 'home',
      component: Full,
      children: [
        {
          path: '/defaultview',
          name: 'defaultview',
          component: DefaultView
        },
        {
          path: '*',
          component: NotFoundComponent
        }
    }
]})

Как только пользователь переходит на myapp.com, я получаю "404 страницу не найден", то есть NotFoundComponent. Только когда я набираю myapp.com/defaultview, могу перейти на правильную страницу.

Любые идеи?

Ответ 1

При использовании детей удалите префикс URL родительского

"/defaultview": изменить "/defaultview" на defaultview удалить родительский компонент пути, поэтому фактический код должен быть таким

routes: [
{
  path: '/',
  redirect: '/defaultview',
  name: 'home',
  component: Full,
  children: [
    {
      path: 'defaultview', /* changed */
      name: 'defaultview',
      component: DefaultView
    },
    {
      path: '*',
      component: NotFoundComponent
    }
  ]
}

ссылка на вложенные маршруты

Ответ 2

Попробуйте этот код:

routes: [
    {
      path: '/',
      redirect: '/defaultview'
    },
    {
      path: '/defaultview',
      name: 'defaultview',
      component: DefaultView
    },
    {
      path: '*',
      component: NotFoundComponent
    }
]

Ответ 3

Вы можете сделать это, используя 1 строку кода, т.е. добавив router.replace("myPath");. Полный код:

import Vue from "vue";
import Router from "vue-router";
import MyComponent from "./my-component";

Vue.use(Router);

const routes = [
  { path: "/myPath", name: "myPath", component: MyComponent }
];

const router = new Router({
  mode: "history", // Remove the hash from the URL, optional.
  routes
});

router.replace("myPath");

export default router;