index.ts 927 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import {
  2. createRouter,
  3. createWebHashHistory,
  4. createWebHistory,
  5. } from 'vue-router';
  6. import { resetStaticRoutes } from '@vben/utils';
  7. import { createRouterGuard } from './guard';
  8. import { routes } from './routes';
  9. /**
  10. * @zh_CN 创建vue-router实例
  11. */
  12. const router = createRouter({
  13. history:
  14. import.meta.env.VITE_ROUTER_HISTORY === 'hash'
  15. ? createWebHashHistory(import.meta.env.VITE_BASE)
  16. : createWebHistory(import.meta.env.VITE_BASE),
  17. // 应该添加到路由的初始路由列表。
  18. routes,
  19. scrollBehavior: (to, _from, savedPosition) => {
  20. if (savedPosition) {
  21. return savedPosition;
  22. }
  23. return to.hash ? { behavior: 'smooth', el: to.hash } : { left: 0, top: 0 };
  24. },
  25. // 是否应该禁止尾部斜杠。
  26. // strict: true,
  27. });
  28. const resetRoutes = () => resetStaticRoutes(router, routes);
  29. // 创建路由守卫
  30. createRouterGuard(router);
  31. export { resetRoutes, router };