import Vue from "vue"; import VueRouter from "vue-router"; import Layout from '@/views/homePage/HomePage.vue' import baseRouter from './modules/base' Vue.use(VueRouter); export const constantRoutes = [ { path: '/404', name: '404', component: (resolve) => require(['@/views/error-page/404.vue'], resolve), hidden: true }, { path: '/login', component: (resolve) => require(['@/views/Login.vue'], resolve), hidden: true }, { path: '', name: 'homePage', component: Layout, children: [ { path: '/homePage', name: 'homePage', component: (resolve) => require(['@/views/overView/Overview.vue'], resolve), meta: { title: '首页', icon: 'dashboard', affix: true }, }, ], hidden: true }, ...baseRouter ] const createRouter = () => { return new VueRouter({ mode: 'hash', // 使用 hash 模式 routes: constantRoutes }); } const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => { if (err && err.name != 'NavigationDuplicated') this.replace('/404') }) } const router = createRouter(); export function resetRouter() { const newRouter = createRouter() router.matcher = newRouter.matcher // reset router } export default router;