UNPKG

vue-router

Version:
171 lines (150 loc) 4.28 kB
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 NavigationGuardNext<V extends Vue = Vue> = ( to?: RawLocation | false | ((vm: V) => any) | void ) => void export type NavigationGuard<V extends Vue = Vue> = ( to: Route, from: Route, next: NavigationGuardNext<V> ) => any export declare class VueRouter { constructor(options?: RouterOptions) app: Vue options: RouterOptions; mode: RouterMode currentRoute: Route beforeEach(guard: NavigationGuard): Function beforeResolve(guard: NavigationGuard): Function afterEach(hook: (to: Route, from: Route) => any): Function push(location: RawLocation): Promise<Route> replace(location: RawLocation): Promise<Route> 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> static version: string static isNavigationFailure: (error: any, type?: NavigationFailureTypeE) => error is Error static NavigationFailureType: NavigationFailureTypeE } export enum NavigationFailureTypeE { redirected = 1, aborted = 2, cancelled = 3, duplicated = 4 } 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> | undefined | null } type RoutePropsFunction = (route: Route) => Object export interface PathToRegexpOptions { sensitive?: boolean strict?: boolean end?: boolean } interface _RouteConfigBase { path: string name?: string children?: RouteConfig[] redirect?: RedirectOption alias?: string | string[] meta?: any beforeEnter?: NavigationGuard caseSensitive?: boolean pathToRegexpOptions?: PathToRegexpOptions } interface RouteConfigSingleView extends _RouteConfigBase { component?: Component props?: boolean | Object | RoutePropsFunction } interface RouteConfigMultipleViews extends _RouteConfigBase { components?: Dictionary<Component> props?: Dictionary<boolean | Object | RoutePropsFunction> } export type RouteConfig = RouteConfigSingleView | RouteConfigMultipleViews 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 | null)[] | null | undefined> params?: Dictionary<string> append?: boolean replace?: boolean } export interface Route { path: string name?: string | null hash: string query: Dictionary<string | (string | null)[]> params: Dictionary<string> fullPath: string matched: RouteRecord[] redirectedFrom?: string meta?: any }