123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import Vue, { ComponentOptions, PluginFunction, AsyncComponent } from "vue";
-
- type Component = ComponentOptions<Vue> | typeof Vue | AsyncComponent;
- type Dictionary<T> = { [key: string]: T };
- type ErrorHandler = (err: Error) => void;
-
- export type RouterMode = "hash" | "history" | "abstract";
- export type RawLocation = string | Location;
- export type RedirectOption = RawLocation | ((to: Route) => RawLocation);
- export type NavigationGuard<V extends Vue = Vue> = (
- to: Route,
- from: Route,
- next: (to?: RawLocation | false | ((vm: V) => any) | void) => void
- ) => any
-
- export declare class VueRouter {
- constructor (options?: RouterOptions);
-
- app: Vue;
- mode: RouterMode;
- currentRoute: Route;
-
- beforeEach (guard: NavigationGuard): Function;
- beforeResolve (guard: NavigationGuard): Function;
- afterEach (hook: (to: Route, from: Route) => any): Function;
- push (location: RawLocation, onComplete?: Function, onAbort?: ErrorHandler): void;
- replace (location: RawLocation, onComplete?: Function, onAbort?: ErrorHandler): void;
- go (n: number): void;
- back (): void;
- forward (): void;
- getMatchedComponents (to?: RawLocation | Route): Component[];
- onReady (cb: Function, errorCb?: ErrorHandler): void;
- onError (cb: ErrorHandler): void;
- addRoutes (routes: RouteConfig[]): void;
- resolve (to: RawLocation, current?: Route, append?: boolean): {
- location: Location;
- route: Route;
- href: string;
- // backwards compat
- normalizedTo: Location;
- resolved: Route;
- };
-
- static install: PluginFunction<never>;
- }
-
- type Position = { x: number, y: number };
- type PositionResult = Position | { selector: string, offset?: Position } | void;
-
- export interface RouterOptions {
- routes?: RouteConfig[];
- mode?: RouterMode;
- fallback?: boolean;
- base?: string;
- linkActiveClass?: string;
- linkExactActiveClass?: string;
- parseQuery?: (query: string) => Object;
- stringifyQuery?: (query: Object) => string;
- scrollBehavior?: (
- to: Route,
- from: Route,
- savedPosition: Position | void
- ) => PositionResult | Promise<PositionResult>;
- }
-
- type RoutePropsFunction = (route: Route) => Object;
-
- export interface PathToRegexpOptions {
- sensitive?: boolean;
- strict?: boolean;
- end?: boolean;
- }
-
- export interface RouteConfig {
- path: string;
- name?: string;
- component?: Component;
- components?: Dictionary<Component>;
- redirect?: RedirectOption;
- alias?: string | string[];
- children?: RouteConfig[];
- meta?: any;
- beforeEnter?: NavigationGuard;
- props?: boolean | Object | RoutePropsFunction;
- caseSensitive?: boolean;
- pathToRegexpOptions?: PathToRegexpOptions;
- }
-
- export interface RouteRecord {
- path: string;
- regex: RegExp;
- components: Dictionary<Component>;
- instances: Dictionary<Vue>;
- name?: string;
- parent?: RouteRecord;
- redirect?: RedirectOption;
- matchAs?: string;
- meta: any;
- beforeEnter?: (
- route: Route,
- redirect: (location: RawLocation) => void,
- next: () => void
- ) => any;
- props: boolean | Object | RoutePropsFunction | Dictionary<boolean | Object | RoutePropsFunction>;
- }
-
- export interface Location {
- name?: string;
- path?: string;
- hash?: string;
- query?: Dictionary<string | string[]>;
- params?: Dictionary<string>;
- append?: boolean;
- replace?: boolean;
- }
-
- export interface Route {
- path: string;
- name?: string;
- hash: string;
- query: Dictionary<string | string[]>;
- params: Dictionary<string>;
- fullPath: string;
- matched: RouteRecord[];
- redirectedFrom?: string;
- meta?: any;
- }
|