router.ts 955 字节
Newer Older
xiaozhumaopao's avatar
xiaozhumaopao 已提交
1
/* eslint-disable @typescript-eslint/no-var-requires */
richard_1015's avatar
richard_1015 已提交
2 3
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
import Index from './views/Index.vue';
xiaozhumaopao's avatar
xiaozhumaopao 已提交
4

richard_1015's avatar
richard_1015 已提交
5
const pagesRouter: Array<RouteRecordRaw> = [];
xiaozhumaopao's avatar
xiaozhumaopao 已提交
6 7 8
const files = require.context('@/packages', true, /doc\.md$/);
files.keys().forEach(component => {
  const componentEntity = files(component).default;
richard_1015's avatar
richard_1015 已提交
9
  const name = `${component.split('/')[1]}`;
xiaozhumaopao's avatar
xiaozhumaopao 已提交
10
  pagesRouter.push({
richard_1015's avatar
richard_1015 已提交
11 12 13
    path: name,
    component: componentEntity,
    name
xiaozhumaopao's avatar
xiaozhumaopao 已提交
14 15
  });
});
richard_1015's avatar
richard_1015 已提交
16 17 18
const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
19
    name: '/',
xiaozhumaopao's avatar
xiaozhumaopao 已提交
20 21
    component: Index,
    children: pagesRouter
richard_1015's avatar
richard_1015 已提交
22 23
  }
];
Z
zhuzhida 已提交
24 25
const router = createRouter({
  history: createWebHashHistory(),
xiaozhumaopao's avatar
xiaozhumaopao 已提交
26
  routes,
richard_1015's avatar
richard_1015 已提交
27
  scrollBehavior(to) {
xiaozhumaopao's avatar
xiaozhumaopao 已提交
28 29 30 31 32 33 34 35
    if (to.hash) {
      const id = to.hash.split('#')[1];
      const ele = document.getElementById(id);
      setTimeout(() => {
        ele && ele.scrollIntoView(true);
      });
    }
  }
Z
zhuzhida 已提交
36 37 38
});

export default router;