跳至内容

API 文档 / 路由器

接口: 路由器

路由器实例。

属性

currentRoute

只读 currentRoute: Ref<RouteLocationNormalizedLoadedGeneric>

当前 RouteLocationNormalized


listening

listening: boolean

允许关闭对历史事件的监听。这是一个用于微前端的低级 API。


options

只读 options: RouterOptions

传递给创建路由器的原始选项对象

方法

addRoute

addRoute(parentName, route): () => void

将新的 路由记录 添加为现有路由的子路由。

参数

名称类型描述
parentNameNonNullable<RouteRecordNameGeneric>应将 route 附加到的父路由记录
routeRouteRecordRaw要添加的路由记录

返回值

fn

▸ (): void

返回值

void

addRoute(route): () => void

将新的 路由记录 添加到路由器中。

参数

名称类型描述
routeRouteRecordRaw要添加的路由记录

返回值

fn

▸ (): void

返回值

void


afterEach

afterEach(guard): () => void

添加一个导航钩子,该钩子在每次导航后执行。返回一个函数,该函数将删除注册的钩子。

参数

名称类型描述
guardNavigationHookAfter要添加的导航钩子

返回值

fn

一个删除注册钩子的函数

▸ (): void

返回值

void

示例

js
router.afterEach((to, from, failure) => {
  if (isNavigationFailure(failure)) {
    console.log('failed navigation', failure)
  }
})

back

back(): void

如果可能,通过调用 history.back() 返回历史记录。等效于 router.go(-1)

返回值

void


beforeEach

beforeEach(guard): () => void

添加一个导航守卫,该守卫在任何导航之前执行。返回一个函数,该函数将删除注册的守卫。

参数

名称类型描述
guardNavigationGuardWithThis<undefined>要添加的导航守卫

返回值

fn

▸ (): void

返回值

void


beforeResolve

beforeResolve(guard): () => void

添加一个导航守卫,该守卫在导航即将解析之前执行。在此状态下,所有组件都已获取,其他导航守卫也已成功。返回一个函数,该函数将删除注册的守卫。

参数

名称类型描述
guardNavigationGuardWithThis<undefined>要添加的导航守卫

返回值

fn

一个删除注册守卫的函数

▸ (): void

返回值

void

示例

js
router.beforeResolve(to => {
  if (to.meta.requiresAuth && !isAuthenticated) return false
})

clearRoutes

clearRoutes(): void

从路由匹配器中删除所有路由。

返回值

void


forward

forward(): void

如果可能,通过调用 history.forward() 前进历史记录。等效于 router.go(1)

返回值

void


getRoutes

getRoutes(): RouteRecordNormalized[]

获取所有 路由记录 的完整列表。

返回值

RouteRecordNormalized[]


go

go(delta): void

允许您在历史记录中前进或后退。调用 history.go()

参数

名称类型描述
deltanumber您要移动到的历史记录中的位置,相对于当前页面

返回值

void


hasRoute

hasRoute(name): boolean

检查是否存在具有给定名称的路由

参数

名称类型描述
nameNonNullable<RouteRecordNameGeneric>要检查的路由的名称

返回值

boolean


install

install(app): void

app.use(router) 自动调用。用户不应手动调用。这将在客户端上触发初始导航。

参数

名称类型描述
appApp<any>使用路由器的应用程序

返回值

void


isReady

isReady(): Promise<void>

返回一个 Promise,该 Promise 在路由器完成初始导航时解析,这意味着它已解析与初始路由关联的所有异步进入钩子和异步组件。如果初始导航已发生,则 Promise 会立即解析。

这在服务器端渲染中很有用,可以确保服务器和客户端输出一致。请注意,在服务器端,您需要手动推送初始位置,而在客户端,路由器会自动从 URL 中获取它。

返回

Promise<void>


onError

onError(handler): () => void

添加一个错误处理程序,该处理程序在导航期间每次发生未捕获的错误时都会被调用。这包括同步和异步抛出的错误、在任何导航守卫中返回或传递给 next 的错误,以及尝试解析渲染路由所需的异步组件时发生的错误。

参数

名称类型描述
handler_ErrorListener要注册的错误处理程序

返回

fn

▸ (): void

返回

void


push

push(to): Promise<undefined | void | NavigationFailure>

通过在历史记录堆栈中推送条目,以编程方式导航到新的 URL。

参数

名称类型描述
tostring | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric要导航到的路由位置

返回

Promise<undefined | void | NavigationFailure>


removeRoute

removeRoute(name): void

通过其名称删除现有路由。

参数

名称类型描述
nameNonNullable<RouteRecordNameGeneric>要删除的路由的名称

返回

void


replace

replace(to): Promise<undefined | void | NavigationFailure>

通过替换历史记录堆栈中的当前条目,以编程方式导航到新的 URL。

参数

名称类型描述
tostring | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric要导航到的路由位置

返回

Promise<undefined | void | NavigationFailure>


resolve

resolve<Name>(to, currentLocation?): RouteLocationResolvedGeneric

返回 规范化版本路由位置。还包括一个 href 属性,其中包含任何现有的 base。默认情况下,使用的 currentLocationrouter.currentRoute,并且应该只在高级用例中被覆盖。

类型参数

名称类型
名称extends string | symbol = string | symbol

参数

名称类型描述
toRouteLocationAsRelativeTyped<RouteMapGeneric, Name>要解析的原始路由位置
currentLocation?RouteLocationNormalizedLoadedGeneric可选的当前位置,用于解析

返回

RouteLocationResolvedGeneric

resolve(to, currentLocation?): RouteLocationResolvedGeneric

参数

名称类型
tostring | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric
currentLocation?RouteLocationNormalizedLoadedGeneric

返回

RouteLocationResolvedGeneric