import { Navigates } from '@/utils/router/navigates'; import { useRouterStore } from '@/state/modules/router'; import { RouteLocationNormalized } from '@/types/router/route'; const router = new Navigates(); /** * 路由hook */ export function useRouter() { return router; } /** * 获取当前Route信息 * 推荐在onLoad中调用此hook * getCurrentPages方法在不同平台有差异 * 在微信小程序中只有在onLoad中才能获取到query * @return RouteLocationNormalized */ export function useRoute(): RouteLocationNormalized { const currentPages = getCurrentPages(); const currentPage = currentPages[currentPages.length - 1]; const path = currentPage?.route || ''; const routerStore = useRouterStore(); const currentRoute = routerStore.getRoutes?.get(path as string); let query = {}; /* #ifndef MP-WEIXIN */ // @ts-ignore query = currentPage?.$page?.options || {}; /* #endif */ /* #ifdef MP-WEIXIN */ // @ts-ignore query = currentPage?.options || {}; /* #endif */ return { currentPages, currentPage, path, currentRoute, query, }; }