API 文档
API 文档
枚举
接口
- HistoryState
- LocationAsRelativeRaw
- MatcherLocation
- MatcherLocationAsPath
- NavigationFailure
- NavigationGuard
- NavigationGuardNext
- NavigationGuardWithThis
- NavigationHookAfter
- NavigationRedirectError
- RouteLocationAsPathGeneric
- RouteLocationAsPathTyped
- RouteLocationAsRelativeGeneric
- RouteLocationAsRelativeTyped
- RouteLocationGeneric
- RouteLocationMatched
- RouteLocationNamedRaw
- RouteLocationNormalizedGeneric
- RouteLocationNormalizedLoadedGeneric
- RouteLocationNormalizedLoadedTyped
- RouteLocationNormalizedTyped
- RouteLocationOptions
- RouteLocationPathRaw
- RouteLocationResolvedGeneric
- RouteLocationResolvedTyped
- RouteLocationTyped
- RouteMeta
- RouteQueryAndHash
- RouteRecordInfo
- RouteRecordMultipleViews
- RouteRecordMultipleViewsWithChildren
- RouteRecordNormalized
- RouteRecordRedirect
- RouteRecordSingleView
- RouteRecordSingleViewWithChildren
- Router
- RouterHistory
- RouterLinkProps
- RouterMatcher
- RouterOptions
- RouterScrollBehavior
- RouterViewProps
- TypesConfig
- UseLinkOptions
- UseLinkReturn
- _PathParserOptions
- _RouteLocationBase
- _RouteRecordBase
- _RouterLinkI
类型别名
LocationQuery
Ƭ LocationQuery: Record
<string
, LocationQueryValue
| LocationQueryValue
[]>
出现在 RouteLocationNormalized 中的标准化查询对象
LocationQueryRaw
Ƭ LocationQueryRaw: Record
<string
| number
, LocationQueryValueRaw
| LocationQueryValueRaw
[]>
松散的 LocationQuery 对象,可以传递给 Router.push 和 Router.replace 等函数,或者在创建 RouteLocationRaw 时传递给任何地方
LocationQueryValue
Ƭ LocationQueryValue: string
| null
标准化 LocationQuery 中可能的 value。null
会渲染查询参数,但没有 =
。
示例
?isNull&isEmpty=&other=other
gives
`{ isNull: null, isEmpty: '', other: 'other' }`.
LocationQueryValueRaw
Ƭ LocationQueryValueRaw: LocationQueryValue
| number
| undefined
定义查询时可能的 value。
NavigationGuardNextCallback
Ƭ NavigationGuardNextCallback: (vm
: ComponentPublicInstance
) => unknown
可以传递给 beforeRouteEnter()
守护程序中的 next()
的回调函数。
类型声明
▸ (vm
): unknown
参数
名称 | 类型 |
---|---|
vm | ComponentPublicInstance |
返回值
unknown
NavigationGuardReturn
Ƭ NavigationGuardReturn: void
| Error
| boolean
| RouteLocationRaw
导航守护程序的返回类型。基于 TypesConfig
参见
ParamValue
Ƭ ParamValue<isRaw
>: true
extends isRaw
? string
| number
: string
用于 raw 和非 raw 参数(如 :id)的实用程序类型
类型参数
名称 | 类型 |
---|---|
isRaw | extends boolean |
ParamValueOneOrMore
Ƭ ParamValueOneOrMore<isRaw
>: [ParamValue
<isRaw
>, ...ParamValue<isRaw>[]]
用于 raw 和非 raw 参数(如 :id+)的实用程序类型
类型参数
名称 | 类型 |
---|---|
isRaw | extends boolean |
ParamValueZeroOrMore
Ƭ ParamValueZeroOrMore<isRaw
>: true
extends isRaw
? ParamValue
<isRaw
>[] | undefined
| null
: ParamValue
<isRaw
>[] | undefined
用于 raw 和非 raw 参数(如 :id*)的实用程序类型
类型参数
名称 | 类型 |
---|---|
isRaw | extends boolean |
ParamValueZeroOrOne
Ƭ ParamValueZeroOrOne<isRaw
>: true
extends isRaw
? string
| number
| null
| undefined
: string
用于 raw 和非 raw 参数(如 :id?)的实用程序类型
类型参数
名称 | 类型 |
---|---|
isRaw | extends boolean |
PathParserOptions
Ƭ PathParserOptions: Pick
<_PathParserOptions
, "end"
| "sensitive"
| "strict"
>
RouteComponent
Ƭ RouteComponent: Component
| DefineComponent
允许在 RouteLocationMatched 中使用的组件
RouteLocation
Ƭ RouteLocation<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationGeneric
: RouteLocationTypedList
<RouteMap
>[Name
]
使用匹配器解析的 RouteLocationRaw
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationAsPath
Ƭ RouteLocationAsPath<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationAsPathGeneric
: RouteLocationAsPathTypedList
<RouteMap
>[Name
]
具有 path
属性的路由位置作为对象。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationAsPathTypedList
Ƭ RouteLocationAsPathTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationAsPathTyped<RouteMap, N> }
所有可能的 RouteLocationAsPath 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationAsRelative
Ƭ RouteLocationAsRelative<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationAsRelativeGeneric
: RouteLocationAsRelativeTypedList
<RouteMap
>[Name
]
相对于当前位置的路由位置。它接受除 path
之外的其他属性,如 params
、query
和 hash
,以便方便地更改它们。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationAsRelativeTypedList
Ƭ RouteLocationAsRelativeTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationAsRelativeTyped<RouteMap, N> }
所有可能的 RouteLocationAsRelative 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationAsString
Ƭ RouteLocationAsString<Name
>: RouteMapGeneric
extends RouteMap
? string
: _LiteralUnion
<RouteLocationAsStringTypedList
<RouteMap
>[Name
], string
>
与 RouteLocationAsPath 相同,但作为字符串字面量。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationAsStringTyped
Ƭ RouteLocationAsStringTyped<RouteMap
, Name
>: RouteMap
[Name
]["path"
]
帮助生成 RouteLocationAsString 类型的类型安全版本。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationAsStringTypedList
Ƭ RouteLocationAsStringTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationAsStringTyped<RouteMap, N> }
所有可能的 RouteLocationAsString 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationNormalized
Ƭ RouteLocationNormalized<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationNormalizedGeneric
: RouteLocationNormalizedTypedList
<RouteMap
>[Name
]
类似于 RouteLocation,但其 matched
属性 不包含重定向记录。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationNormalizedLoaded
Ƭ RouteLocationNormalizedLoaded<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationNormalizedLoadedGeneric
: RouteLocationNormalizedLoadedTypedList
<RouteMap
>[Name
]
类似于 RouteLocationNormalized,但其 components
不包含任何用于延迟加载组件的函数。换句话说,它已准备好由 <RouterView>
渲染。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationNormalizedLoadedTypedList
Ƭ RouteLocationNormalizedLoadedTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationNormalizedLoadedTyped<RouteMap, N> }
所有可能的 RouteLocationNormalizedLoaded 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationNormalizedTypedList
Ƭ RouteLocationNormalizedTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationNormalizedTyped<RouteMap, N> }
所有可能的 RouteLocationNormalized 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationRaw
Ƭ RouteLocationRaw<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationAsString
| RouteLocationAsRelativeGeneric
| RouteLocationAsPathGeneric
: _LiteralUnion
<RouteLocationAsStringTypedList
<RouteMap
>[Name
], string
> | RouteLocationAsRelativeTypedList
<RouteMap
>[Name
] | RouteLocationAsPathTypedList
<RouteMap
>[Name
]
可以传递给 router.push()
和其他面向用户的 API 的路由位置。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationResolved
Ƭ RouteLocationResolved<Name
>: RouteMapGeneric
extends RouteMap
? RouteLocationResolvedGeneric
: RouteLocationResolvedTypedList
<RouteMap
>[Name
]
使用 router.resolve()
解析的路由位置。
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteLocationResolvedTypedList
Ƭ RouteLocationResolvedTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationResolvedTyped<RouteMap, N> }
所有可能的 RouteLocationResolved 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteLocationTypedList
Ƭ RouteLocationTypedList<RouteMap
>: { [N in keyof RouteMap]: RouteLocationTyped<RouteMap, N> }
所有可能的 RouteLocation 列表,按路由名称索引。
类型参数
名称 | 类型 |
---|---|
RouteMap | extends RouteMapGeneric = RouteMapGeneric |
RouteMap
Ƭ RouteMap: TypesConfig
extends Record
<"RouteNamedMap"
, infer RouteNamedMap> ? RouteNamedMap
: RouteMapGeneric
获取类型化 RouteMap 或未提供时获取泛型 RouteMap 的便捷类型。如果存在,它将从 TypesConfig 中提取,否则它将成为 RouteMapGeneric。
RouteMapGeneric
Ƭ RouteMapGeneric: Record
<string
| symbol
, RouteRecordInfo
>
RouteMap
的泛型版本。
RouteParamValue
Ƭ RouteParamValue: string
RouteParamValueRaw
Ƭ RouteParamValueRaw: RouteParamValue
| number
| null
| undefined
RouteParams
Ƭ RouteParams<Name
>: RouteMap
[Name
]["params"
]
为路由位置生成类型安全的参数。需要将路由的名称作为泛型传递。
参见
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteParamsGeneric
Ƭ RouteParamsGeneric: Record
<string
, RouteParamValue
| RouteParamValue
[]>
RouteParamsRaw
Ƭ RouteParamsRaw<Name
>: RouteMap
[Name
]["paramsRaw"
]
为路由位置生成类型安全的原始参数。需要将路由的名称作为泛型传递。
参见
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
RouteParamsRawGeneric
Ƭ RouteParamsRawGeneric: Record
<string
, RouteParamValueRaw
| Exclude
<RouteParamValueRaw
, null
| undefined
>[]>
RouteRecord
Ƭ RouteRecord: RouteRecordNormalized
路由记录 的规范化版本。
RouteRecordName
Ƭ RouteRecordName: RouteMapGeneric
extends RouteMap
? RouteRecordNameGeneric
: keyof RouteMap
规范化后路由记录的可能值
注意:由于 RouteRecordName
是一个类型,它过早地进行评估,通常是泛型版本 RouteRecordNameGeneric。如果您需要所有路由名称的类型化版本,请使用 keyof RouteMap
RouteRecordNameGeneric
Ƭ RouteRecordNameGeneric: string
| symbol
| undefined
RouteRecordName 的泛型版本。
RouteRecordRaw
Ƭ RouteRecordRaw: RouteRecordSingleView
| RouteRecordSingleViewWithChildren
| RouteRecordMultipleViews
| RouteRecordMultipleViewsWithChildren
| RouteRecordRedirect
RouteRecordRedirectOption
Ƭ RouteRecordRedirectOption: RouteLocationRaw
| (to
: RouteLocation
) => RouteLocationRaw
_Awaitable
Ƭ _Awaitable<T
>: T
| PromiseLike
<T
>
可能是 promise 也可能不是
类型参数
名称 |
---|
T |
_RouteRecordProps
Ƭ _RouteRecordProps<Name
>: boolean
| Record
<string
, any
> | (to
: RouteLocationNormalized
<Name
>) => Record
<string
, any
>
类型参数
名称 | 类型 |
---|---|
名称 | extends keyof RouteMap = keyof RouteMap |
变量
RouterLink
• Const
RouterLink: _RouterLinkI
用于渲染链接的组件,该链接在点击时触发导航。
RouterView
• Const
RouterView: () => { $props
: AllowedComponentProps
& ComponentCustomProps
& VNodeProps
& RouterViewProps
; $slots
: { default?
: (__namedParameters
: { Component
: VNode
<RendererNode
, RendererElement
, { [key: string]
: any
; }> ; route
: RouteLocationNormalizedLoadedGeneric
}) => VNode
<RendererNode
, RendererElement
, { [key: string]
: any
; }>[] } }
用于显示用户当前所处路由的组件。
类型声明
• new RouterView(): Object
用于显示用户当前所处路由的组件。
返回
Object
名称 | 类型 |
---|---|
$props | AllowedComponentProps & ComponentCustomProps & VNodeProps & RouterViewProps |
$slots | { default? : (__namedParameters : { Component : VNode <RendererNode , RendererElement , { [key: string] : any ; }> ; route : RouteLocationNormalizedLoadedGeneric }) => VNode <RendererNode , RendererElement , { [key: string] : any ; }>[] } |
$slots.default? | (__namedParameters : { Component : VNode <RendererNode , RendererElement , { [key: string] : any ; }> ; route : RouteLocationNormalizedLoadedGeneric }) => VNode <RendererNode , RendererElement , { [key: string] : any ; }>[] |
START_LOCATION
• Const
START_LOCATION: RouteLocationNormalizedLoaded
路由器初始路由位置。可以在导航守卫中使用它来区分初始导航。
示例
import { START_LOCATION } from 'vue-router'
router.beforeEach((to, from) => {
if (from === START_LOCATION) {
// initial navigation
}
})
matchedRouteKey
• Const
matchedRouteKey: InjectionKey
<ComputedRef
<undefined
| RouteRecordNormalized
>>
由最近的祖先 Router View 渲染的 RouteRecord。用于 onBeforeRouteUpdate
和 onBeforeRouteLeave
。rvlm 代表 Router View Location Matched
routeLocationKey
• Const
routeLocationKey: InjectionKey
<RouteLocationNormalizedLoadedGeneric
>
允许在测试中覆盖 useRoute
返回的当前路由。rl 代表 route location
routerKey
• Const
routerKey: InjectionKey
<Router
>
允许在测试中覆盖 useRouter
返回的路由器实例。r 代表 router
routerViewLocationKey
• Const
routerViewLocationKey: InjectionKey
<Ref
<RouteLocationNormalizedLoadedGeneric
>>
允许覆盖 router-view 使用的当前路由。在内部,当传递 route
prop 时,会使用它。
viewDepthKey
• Const
viewDepthKey: InjectionKey
<number
| Ref
<number
>>
允许覆盖路由视图深度以控制 matched
中渲染的组件。rvd 代表 Router View Depth
函数
createMemoryHistory
▸ createMemoryHistory(base?
): RouterHistory
创建一个基于内存的历史记录。此历史记录的主要目的是处理 SSR。它从一个特殊的位置开始,该位置无处不在。用户需要通过调用 router.push
或 router.replace
来将该位置替换为起始位置。
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
base | string | '' | 应用于所有 URL 的基础,默认为 '/' |
返回
一个可以传递给路由器构造函数的历史记录对象
createRouter
▸ createRouter(options
): Router
创建一个可以由 Vue 应用程序使用的路由器实例。
参数
名称 | 类型 | 描述 |
---|---|---|
options | RouterOptions | RouterOptions |
返回
createRouterMatcher
▸ createRouterMatcher(routes
, globalOptions
): RouterMatcher
创建一个路由匹配器。
参数
名称 | 类型 | 描述 |
---|---|---|
routes | readonly RouteRecordRaw [] | 初始路由数组 |
globalOptions | PathParserOptions | 全局路由选项 |
返回
createWebHashHistory
▸ createWebHashHistory(base?
): RouterHistory
创建一个哈希历史记录。对于没有主机(例如 file://
)的 Web 应用程序或当配置服务器以处理任何 URL 不可能时很有用。
参数
名称 | 类型 | 描述 |
---|---|---|
base? | string | 要提供的可选基础。默认为 location.pathname + location.search 如果 head 中存在 <base> 标签,则其值将被忽略,有利于此参数,但请注意它会影响所有 history.pushState() 调用,这意味着如果您使用 <base> 标签,则其 href 值必须与该参数匹配(忽略 # 之后的任何内容)。 |
返回
示例
// at https://example.com/folder
createWebHashHistory() // gives a url of `https://example.com/folder#`
createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`
// if the `#` is provided in the base, it won't be added by `createWebHashHistory`
createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`
// you should avoid doing this because it changes the original url and breaks copying urls
createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`
// at file:///usr/etc/folder/index.html
// for locations with no `host`, the base is ignored
createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`
createWebHistory
▸ createWebHistory(base?
): RouterHistory
创建一个 HTML5 历史记录。单页应用程序最常见的历史记录。
参数
名称 | 类型 |
---|---|
base? | string |
返回
isNavigationFailure
▸ isNavigationFailure(error
, type?
): error is NavigationRedirectError
检查一个对象是否为 NavigationFailure。
参数
名称 | 类型 | 描述 |
---|---|---|
error | any | 可能的 NavigationFailure |
type? | NAVIGATION_GUARD_REDIRECT | 要检查的可选类型 |
返回
error is NavigationRedirectError
示例
import { isNavigationFailure, NavigationFailureType } from 'vue-router'
router.afterEach((to, from, failure) => {
// Any kind of navigation failure
if (isNavigationFailure(failure)) {
// ...
}
// Only duplicated navigations
if (isNavigationFailure(failure, NavigationFailureType.duplicated)) {
// ...
}
// Aborted or canceled navigations
if (isNavigationFailure(failure, NavigationFailureType.aborted | NavigationFailureType.canceled)) {
// ...
}
})
▸ isNavigationFailure(error
, type?
): error is NavigationFailure
参数
名称 | 类型 |
---|---|
error | any |
type? | ErrorTypes | NavigationFailureType |
返回
error is NavigationFailure
loadRouteLocation
▸ loadRouteLocation(route
): Promise
<RouteLocationNormalizedLoaded
>
确保路由已加载,以便可以将其作为 prop 传递给 <RouterView>
。
参数
名称 | 类型 | 描述 |
---|---|---|
route | RouteLocationNormalizedGeneric | RouteLocationGeneric | 要加载的已解析路由 |
返回
Promise
<RouteLocationNormalizedLoaded
>
onBeforeRouteLeave
▸ onBeforeRouteLeave(leaveGuard
): void
添加一个导航守卫,每当当前位置的组件即将离开时触发。类似于 beforeRouteLeave,但可以在任何组件中使用。当组件卸载时,守卫将被移除。
参数
名称 | 类型 | 描述 |
---|---|---|
leaveGuard | NavigationGuard | NavigationGuard |
返回
void
onBeforeRouteUpdate
▸ onBeforeRouteUpdate(updateGuard
): void
添加一个导航守卫,每当当前位置即将更新时触发。类似于 beforeRouteUpdate,但可以在任何组件中使用。当组件卸载时,守卫将被移除。
参数
名称 | 类型 | 描述 |
---|---|---|
updateGuard | NavigationGuard | NavigationGuard |
返回
void
parseQuery
▸ parseQuery(search
): LocationQuery
将 queryString 转换为 LocationQuery 对象。接受两者,一个带有前导 ?
的版本和没有前导 ?
的版本。应该像 URLSearchParams 一样工作
参数
名称 | 类型 | 描述 |
---|---|---|
search | string | 要解析的搜索字符串 |
返回
一个查询对象
stringifyQuery
▸ stringifyQuery(query
): string
将 LocationQueryRaw 对象字符串化。像 URLSearchParams
一样,它不会添加前导 ?
参数
名称 | 类型 | 描述 |
---|---|---|
query | LocationQueryRaw | 要字符串化的查询对象 |
返回
string
查询的字符串版本,没有前导 ?
useLink
▸ useLink<Name
>(props
): UseLinkReturn
<Name
>
返回 RouterLink 的内部行为,不包括渲染部分。
类型参数
名称 | 类型 |
---|---|
名称 | extends string | symbol = string | symbol |
参数
名称 | 类型 | 描述 |
---|---|---|
props | UseLinkOptions <Name > | 一个 to 位置和一个可选的 replace 标志 |
返回
UseLinkReturn
<Name
>
useRoute
▸ useRoute<Name
>(_name?
): RouteLocationNormalizedLoaded
<Name
>
返回当前路由位置。等同于在模板中使用 $route
。
类型参数
名称 | 类型 |
---|---|
名称 | extends string | symbol = string | symbol |
参数
名称 | 类型 |
---|---|
_name? | 名称 |
返回
RouteLocationNormalizedLoaded
<Name
>
useRouter
▸ useRouter(): Router
返回路由实例。等同于在模板中使用 $router
。