本页面提供 @esmx/router 和 @esmx/router-vue 导出的所有类型的完整列表。
enum RouterMode {
history = 'history',
memory = 'memory'
}路由器运行模式:
history:使用浏览器 History APImemory:使用内存历史栈enum RouteType {
push = 'push',
replace = 'replace',
restartApp = 'restartApp',
go = 'go',
forward = 'forward',
back = 'back',
unknown = 'unknown',
pushWindow = 'pushWindow',
replaceWindow = 'replaceWindow',
pushLayer = 'pushLayer'
}触发路由创建的导航类型。详情请参阅 Route。
type RouteMeta = Record<string | symbol, unknown>;自定义路由元数据类型。用于向路由配置附加任意数据,可通过 route.meta 访问。
const routes = [
{
path: '/admin',
meta: {
requiresAuth: true,
title: '管理面板',
[Symbol('internal')]: 'data'
}
}
];type RouteState = Record<string, unknown>;路由状态类型。用于在浏览器历史状态中持久化自定义数据。
router.push({
path: '/page',
state: { scrollY: 100, formData: { name: 'John' } }
});type RouteHandleResult = unknown | null | void;路由处理钩子的返回类型。结果可通过 route.handleResult 访问。
type RouteMatchType = 'route' | 'exact' | 'include';路由匹配策略:
'route':路由级匹配 — 比较路由配置是否相同'exact':精确匹配 — 比较路径是否完全相同'include':包含匹配 — 检查当前路径是否包含目标路径type Awaitable<T> = T | Promise<T>;工具类型,表示可以是同步值或 Promise 的值。
interface RouteLocation {
path?: string;
url?: string | URL;
params?: Record<string, string>;
query?: Record<string, string | undefined>;
queryArray?: Record<string, string[] | undefined>;
hash?: string;
state?: RouteState;
keepScrollPosition?: boolean;
statusCode?: number | null;
layer?: RouteLayerOptions | null;
confirm?: RouteConfirmHook | null;
}用于导航的路由位置对象。详情请参阅 Route。
type RouteLocationInput = RouteLocation | string;导航方法的输入类型。可以是字符串路径或 RouteLocation 对象。
interface RouteConfig {
path: string;
component?: unknown;
children?: RouteConfig[];
redirect?: RouteLocationInput | RouteConfirmHook;
meta?: RouteMeta;
app?: string | RouterMicroAppCallback;
asyncComponent?: () => Promise<unknown>;
beforeEnter?: RouteConfirmHook;
beforeUpdate?: RouteConfirmHook;
beforeLeave?: RouteConfirmHook;
layer?: boolean;
override?: RouteConfirmHook;
}路由配置接口。详情请参阅路由配置。
interface RouteParsedConfig extends RouteConfig {
compilePath: string;
children: RouteParsedConfig[];
match: MatchFunction;
compile: (params?: Record<string, string>) => string;
}内部解析的路由配置,包含编译后的匹配和编译函数。
interface RouteMatchResult {
readonly matches: readonly RouteParsedConfig[];
readonly params: Record<string, string | string[]>;
}路由匹配操作的结果。
type RouteMatcher = (
to: URL,
base: URL,
cb?: (item: RouteParsedConfig) => boolean
) => RouteMatchResult;路由匹配函数类型。
type RouteConfirmHook = (
to: Route,
from: Route | null,
router: Router
) => Awaitable<RouteConfirmHookResult>;确认守卫,可以批准、取消或重定向导航。
type RouteConfirmHookResult =
| void
| false
| RouteLocationInput
| RouteHandleHook;确认钩子的返回类型。
type RouteNotifyHook = (
to: Route,
from: Route | null,
router: Router
) => void;导航完成后调用的通知钩子。
type RouteVerifyHook = (
to: Route,
from: Route | null,
router: Router
) => Awaitable<boolean>;返回布尔值结果的验证钩子。
type RouteHandleHook = (
to: Route,
from: Route | null,
router: Router
) => Awaitable<RouteHandleResult>;用于自定义路由处理逻辑的处理钩子。
interface RouterOptions {
root?: string | HTMLElement;
context?: Record<string | symbol, unknown>;
data?: Record<string | symbol, unknown>;
routes?: RouteConfig[];
mode?: RouterMode;
base?: URL;
req?: IncomingMessage | null;
res?: ServerResponse | null;
apps?: RouterMicroApp;
normalizeURL?: (to: URL, from: URL | null) => URL;
fallback?: RouteHandleHook;
nextTick?: () => Awaitable<void>;
rootStyle?: Partial<CSSStyleDeclaration> | false | null;
layer?: boolean;
zIndex?: number;
handleBackBoundary?: (router: Router) => void;
handleLayerClose?: (router: Router, data?: any) => void;
}路由器构造选项。详情请参阅 Router。
interface RouterParsedOptions extends Readonly<Required<RouterOptions>> {
readonly compiledRoutes: readonly RouteParsedConfig[];
readonly matcher: RouteMatcher;
}完全解析的路由器选项,包含编译后的路由和匹配器。
type RouterLinkType =
| 'push'
| 'replace'
| 'pushWindow'
| 'replaceWindow'
| 'pushLayer';链接的导航类型。
interface RouterLinkProps {
to: RouteLocationInput;
type?: RouterLinkType;
replace?: boolean;
exact?: RouteMatchType;
activeClass?: string;
event?: string | string[];
tag?: string;
layerOptions?: RouteLayerOptions;
beforeNavigate?: (event: Event, eventName: string) => void;
}链接配置属性。详情请参阅 RouterLink。
interface RouterLinkAttributes {
href: string;
class: string;
target?: '_blank';
rel?: string;
}为链接元素生成的 HTML 属性。
interface RouterLinkResolved {
route: Route;
type: RouterLinkType;
isActive: boolean;
isExactActive: boolean;
isExternal: boolean;
tag: string;
attributes: RouterLinkAttributes;
navigate: (e: Event) => Promise<void>;
createEventHandlers: (
format?: (eventType: string) => string
) => Record<string, (e: Event) => Promise<void>>;
}解析后的链接数据。详情请参阅 RouterLink。
interface RouteLayerOptions {
zIndex?: number;
keepAlive?: 'exact' | 'include' | RouteVerifyHook;
shouldClose?: RouteVerifyHook;
autoPush?: boolean;
push?: boolean;
routerOptions?: RouterLayerOptions;
}图层创建选项。详情请参阅图层路由。
type RouteLayerResult =
| { type: 'close'; route: Route }
| { type: 'push'; route: Route }
| { type: 'success'; route: Route; data?: any };图层结果联合类型。详情请参阅图层路由。
type RouterLayerOptions = Omit<
RouterOptions,
'handleBackBoundary' | 'handleLayerClose' | 'layer'
>;图层创建的路由器选项,排除内部管理的处理字段。
type RouterMicroApp =
| Record<string, RouterMicroAppCallback | undefined>
| RouterMicroAppCallback;微应用配置。可以是命名的应用工厂映射或单个工厂函数。
type RouterMicroAppCallback = (router: Router) => RouterMicroAppOptions;从路由器创建微应用实例的工厂函数。
interface RouterMicroAppOptions {
mount: (el: HTMLElement) => void;
unmount: () => void;
renderToString?: () => Awaitable<string>;
}微应用生命周期接口:
mount:将应用挂载到 DOM 元素unmount:卸载并清理应用renderToString:可选的 SSR 渲染方法interface RouteOptions {
options?: RouterParsedOptions;
toType?: RouteType;
toInput?: RouteLocationInput;
from?: URL | null;
}Route 类的构造选项(内部使用)。
以下类型已弃用,将在未来版本中移除:
/** @deprecated 请直接使用 `Router` */
type RouterInstance = Router;/** @deprecated 请直接使用 `RouteLocationInput` */
type RouterRawLocation = RouteLocationInput;/** @deprecated 请直接使用 `RouteLocation` */
type RouterLocation = RouteLocation;/** @deprecated 请直接使用 `Route` */
type RouteRecord = Route;