Перенаправление на конкретный URL в случае неправильного URL в vuejs - PullRequest
0 голосов
/ 10 июля 2019

У меня есть два отдельных файла маршрутизации, в которые я импортирую компонент и определяю их маршрутизацию в каждом из его файлов и использую его в файле index.js.Вот мой код файлов:

//router1.js 
import Layout1 from 'Layouts/Panel.vue';

const Users = () => import('Views/Users.vue');
const Reports = () => import('Views/Reports.vue');

export default {
    path: '/layout1',
    component: Layout1,
    redirect:'/layout1/reports',
    children:[
       { 
            path: 'reports',  
            component: Reports, 
            name:'Reports'
        },
        { 
            path: 'users',  
            component: Users, 
            name:'Users'
        }
     ]
}

//router2.js
import Layout2 from 'Layout/Panel2';

const Demo1 = () => import('Views/Demo1');
const Demo2 = () => import('Views/Demo2');
export default {
    path: '/',
    component: Layout2,
    redirect:'/demo1',
    children:[
        { 
            path: '/demo1',
            component: Demo1
        },
        { 
            path: '/demo2',
            component: Demo2
        }
   ]
}
// index.js
import Vue from 'vue'
import Router from 'vue-router'

import router1 from './router1';
import router2 from './router2';
const NotFound = () => import('Views/NotFound.vue');
Vue.use(Router)

export default new Router({
    mode: 'history',
    routes: [
        router1,
        router2,
        { 
            path: '*',  
            component: NotFound, 
            name:'NotFound',
        },
    ]
})

Теперь я хочу перенаправить на конкретный URL-адрес, т.е. «не найден» в случае неправильного URL.В компоненте «NotFound» я добавляю ниже строку кода в смонтированном хуке жизненного цикла, который перенаправляет на URL «not-found».

this. $ Router.replace ({путь: 'не найден'});

Но если URL имеет параметры или строку запроса, он будет добавлен к нему,Например: http://localhost:8080/home/not-found Я хочу, чтобы он показывал только http://localhost:8080/not-found Как мне этого добиться.Пожалуйста помоги.Спасибо!

1 Ответ

2 голосов
/ 10 июля 2019

попробуйте это в вашей установленной функции. работал на моей стороне.

this.$router.push({path: '/not-found'})
...