API 文档 / 路由器
接口: 路由器
路由器实例。
属性
currentRoute
• 只读
currentRoute: Ref
<RouteLocationNormalizedLoadedGeneric
>
listening
• listening: boolean
允许关闭对历史事件的监听。这是一个用于微前端的低级 API。
options
• 只读
options: RouterOptions
传递给创建路由器的原始选项对象
方法
addRoute
▸ addRoute(parentName
, route
): () => void
将新的 路由记录 添加为现有路由的子路由。
参数
名称 | 类型 | 描述 |
---|---|---|
parentName | NonNullable <RouteRecordNameGeneric > | 应将 route 附加到的父路由记录 |
route | RouteRecordRaw | 要添加的路由记录 |
返回值
fn
▸ (): void
返回值
void
▸ addRoute(route
): () => void
将新的 路由记录 添加到路由器中。
参数
名称 | 类型 | 描述 |
---|---|---|
route | RouteRecordRaw | 要添加的路由记录 |
返回值
fn
▸ (): void
返回值
void
afterEach
▸ afterEach(guard
): () => void
添加一个导航钩子,该钩子在每次导航后执行。返回一个函数,该函数将删除注册的钩子。
参数
名称 | 类型 | 描述 |
---|---|---|
guard | NavigationHookAfter | 要添加的导航钩子 |
返回值
fn
一个删除注册钩子的函数
▸ (): void
返回值
void
示例
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
添加一个导航守卫,该守卫在任何导航之前执行。返回一个函数,该函数将删除注册的守卫。
参数
名称 | 类型 | 描述 |
---|---|---|
guard | NavigationGuardWithThis <undefined > | 要添加的导航守卫 |
返回值
fn
▸ (): void
返回值
void
beforeResolve
▸ beforeResolve(guard
): () => void
添加一个导航守卫,该守卫在导航即将解析之前执行。在此状态下,所有组件都已获取,其他导航守卫也已成功。返回一个函数,该函数将删除注册的守卫。
参数
名称 | 类型 | 描述 |
---|---|---|
guard | NavigationGuardWithThis <undefined > | 要添加的导航守卫 |
返回值
fn
一个删除注册守卫的函数
▸ (): void
返回值
void
示例
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
[]
获取所有 路由记录 的完整列表。
返回值
go
▸ go(delta
): void
允许您在历史记录中前进或后退。调用 history.go()
。
参数
名称 | 类型 | 描述 |
---|---|---|
delta | number | 您要移动到的历史记录中的位置,相对于当前页面 |
返回值
void
hasRoute
▸ hasRoute(name
): boolean
检查是否存在具有给定名称的路由
参数
名称 | 类型 | 描述 |
---|---|---|
name | NonNullable <RouteRecordNameGeneric > | 要检查的路由的名称 |
返回值
boolean
install
▸ install(app
): void
由 app.use(router)
自动调用。用户不应手动调用。这将在客户端上触发初始导航。
参数
名称 | 类型 | 描述 |
---|---|---|
app | App <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。
参数
名称 | 类型 | 描述 |
---|---|---|
to | string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric | 要导航到的路由位置 |
返回
Promise
<undefined
| void
| NavigationFailure
>
removeRoute
▸ removeRoute(name
): void
通过其名称删除现有路由。
参数
名称 | 类型 | 描述 |
---|---|---|
name | NonNullable <RouteRecordNameGeneric > | 要删除的路由的名称 |
返回
void
replace
▸ replace(to
): Promise
<undefined
| void
| NavigationFailure
>
通过替换历史记录堆栈中的当前条目,以编程方式导航到新的 URL。
参数
名称 | 类型 | 描述 |
---|---|---|
to | string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric | 要导航到的路由位置 |
返回
Promise
<undefined
| void
| NavigationFailure
>
resolve
▸ resolve<Name
>(to
, currentLocation?
): RouteLocationResolvedGeneric
返回 规范化版本 的 路由位置。还包括一个 href
属性,其中包含任何现有的 base
。默认情况下,使用的 currentLocation
是 router.currentRoute
,并且应该只在高级用例中被覆盖。
类型参数
名称 | 类型 |
---|---|
名称 | extends string | symbol = string | symbol |
参数
名称 | 类型 | 描述 |
---|---|---|
to | RouteLocationAsRelativeTyped <RouteMapGeneric , Name > | 要解析的原始路由位置 |
currentLocation? | RouteLocationNormalizedLoadedGeneric | 可选的当前位置,用于解析 |
返回
▸ resolve(to
, currentLocation?
): RouteLocationResolvedGeneric
参数
名称 | 类型 |
---|---|
to | string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric |
currentLocation? | RouteLocationNormalizedLoadedGeneric |