import Vue from 'vue' import VueRouter from 'vue-router' import padRouter from './pad/index' import AvueRouter from './avue-router' import Store from '../store/' Vue.use(VueRouter) //创建路由 export const createRouter = () => new VueRouter({ routes: [ ...padRouter] }) const Router = createRouter() AvueRouter.install(Router, Store) Router.$avueRouter.formatRoutes(Store.state.user.menu, true) // 重置路由 export function resetRouter () { const newRouter = createRouter() Router.matcher = newRouter.matcher AvueRouter.install(Router, Store) } // router文件夹下等index.js文件中写入 //解决编程式路由往同一地址跳转时会报错的情况 const originalPush = VueRouter.prototype.push const originalReplace = VueRouter.prototype.replace //push /*VueRouter.prototype.push = function push(location, onResolve, onReject) { if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) return originalPush.call(this, location).catch(err => err) }*/ //replace VueRouter.prototype.replace = function push(location, onResolve, onReject) { if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject) return originalReplace.call(this, location).catch(err => err) } export default Router