2026-03-26 20:18:20 +08:00
|
|
|
import type { App } from 'vue';
|
|
|
|
|
import {
|
|
|
|
|
type RouterHistory,
|
|
|
|
|
createMemoryHistory,
|
|
|
|
|
createRouter,
|
|
|
|
|
createWebHashHistory,
|
|
|
|
|
createWebHistory
|
|
|
|
|
} from 'vue-router';
|
|
|
|
|
import { createBuiltinVueRoutes } from './routes/builtin';
|
|
|
|
|
import { createRouterGuard } from './guard';
|
2026-04-23 09:05:55 +08:00
|
|
|
import { setGlobalRouter } from './instance';
|
2026-03-26 20:18:20 +08:00
|
|
|
|
|
|
|
|
const { VITE_ROUTER_HISTORY_MODE = 'history', VITE_BASE_URL } = import.meta.env;
|
|
|
|
|
|
|
|
|
|
const historyCreatorMap: Record<Env.RouterHistoryMode, (base?: string) => RouterHistory> = {
|
|
|
|
|
hash: createWebHashHistory,
|
|
|
|
|
history: createWebHistory,
|
|
|
|
|
memory: createMemoryHistory
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const router = createRouter({
|
|
|
|
|
history: historyCreatorMap[VITE_ROUTER_HISTORY_MODE](VITE_BASE_URL),
|
|
|
|
|
routes: createBuiltinVueRoutes()
|
|
|
|
|
});
|
|
|
|
|
|
2026-04-23 09:05:55 +08:00
|
|
|
setGlobalRouter(router);
|
|
|
|
|
|
2026-03-26 20:18:20 +08:00
|
|
|
/** 挂载并初始化 Vue Router */
|
|
|
|
|
export async function setupRouter(app: App) {
|
|
|
|
|
app.use(router);
|
|
|
|
|
createRouterGuard(router);
|
|
|
|
|
await router.isReady();
|
|
|
|
|
}
|