123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import Vue from 'vue';
- import VueRouter from 'vue-router';
- import Layout from '@/layouts';
- import Login from '@/views/login';
- import NProgress from 'nprogress'; // progress bar
- import 'nprogress/nprogress.css';
- NProgress.configure({ showSpinner: false });
- Vue.use(VueRouter);
- const routes = [
- {
- path: '/login',
- component: Login
- },
- {
- path: '/404',
- component: () => import('@/views/404')
- },
- {
- path: '/',
- component: Layout,
- redirect: '/taskkanban',
- children: [
- {
- path: '/taskkanban',
- name: 'TaskKanban',
- component: () => import('@/views/teacher/TaskKanban')
- }
- ]
- },
- {
- path: '*',
- redirect: '/404',
- component: () => import('@/views/404')
- }
- ];
- const createRouter = () =>
- new VueRouter({
- // mode: 'history',
- scrollBehavior: () => ({ y: 0 }),
- routes
- });
- const router = createRouter();
- // 全局前置守卫
- router.beforeEach(async (to, from, next) => {
- NProgress.start();
- next();
- });
- // 全局后置钩子
- router.afterEach(() => {
- NProgress.done();
- });
- // 重置路由
- export function resetRouter() {
- const newRouter = createRouter();
- router.matcher = newRouter.matcher; // reset router
- }
- export default router;
|