/** * 全站路由配置 * * meta参数说明 * keepAlive是否缓冲页面 * isTab是否加入到tag导航 * isAuth是否需要授权 */ import Vue from 'vue'; import VueRouter from 'vue-router'; import PageRouter from './page/' // 页面路由 import ViewsRouter from './views/' // 页面路由 import AvueRouter from './avue-router'; //封装的路由控制方法 import i18n from '@/lang' // Internationalization 国际化 多语言 import Store from '../store/'; // vuex Vue.use(VueRouter) //创建路由 export const createRouter = () => new VueRouter({ routes: [...PageRouter, ...ViewsRouter] }) const Router = createRouter() // 获得 route 实例 // 初始化和注册 AvueRouter AvueRouter.install(Vue, { router: Router, store: Store, i18n: i18n, keepAlive: false, }); Router.$avueRouter.formatRoutes(Store.state.user.menuAll, true); // 动态路由核心方法 Router.addRoutes([...PageRouter, ...ViewsRouter]); export function resetRouter () { // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限 const newRouter = createRouter() Router.matcher = newRouter.matcher // reset router AvueRouter.install(Vue, { router: Router, store: Store, i18n: i18n, keepAlive: false, }); } export default Router