]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
feat: useRoute, useRouter
authorEduardo San Martin Morote <posva13@gmail.com>
Mon, 17 Feb 2020 09:54:48 +0000 (10:54 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 17 Feb 2020 09:54:48 +0000 (10:54 +0100)
src/index.ts
src/injectKeys.ts
src/types/index.ts

index ca909961a3f28edc6e699c07e3e15c62d79b7f9b..8a5e5fd5753b07cb4cf94853408cefb43c84c42a 100644 (file)
@@ -8,19 +8,9 @@ import {
 } from './types'
 import { onBeforeRouteLeave } from './navigationGuards'
 
-// declare module '@vue/runtime-core' {
-//   interface Inject {
-//     (name: 'router'): Router
-//     (name: 'route'): Ref<RouteLocationNormalized>
-//   }
-// function inject<T>(key: InjectionKey<T> | string): T | undefined
-// function inject<T>(key: InjectionKey<T> | string, defaultValue: T): T
-// function inject(key: InjectionKey<any> | string, defaultValue?: unknown): any
-// export function inject(name: 'router'): Router
-// export function inject(name: 'route'): Ref<RouteLocationNormalized>
-// }
+export { RouteLocationOptions } from './types'
 
-export * from './injectKeys'
+export { useRoute, useRouter } from './injectKeys'
 
 export {
   createHistory,
index 75700fdc49eba31ed4b923d742af6e291b0e6a45..e13ed87398e4c0c86554fde8122efed6d04f37af 100644 (file)
@@ -1,7 +1,15 @@
-import { InjectionKey, Ref } from 'vue'
+import { InjectionKey, Ref, inject } from 'vue'
 import { Router, RouteLocationNormalized } from '.'
 
 export const routerKey = ('router' as unknown) as InjectionKey<Router>
 export const routeKey = ('route' as unknown) as InjectionKey<
   Ref<RouteLocationNormalized>
 >
+
+export function useRouter(): Router {
+  return inject(routerKey)!
+}
+
+export function useRoute(): Ref<RouteLocationNormalized> {
+  return inject(routeKey)!
+}
index 488f2271461d42110ad80cac571c8ce298255e15..df5010cf2280efaadc9432621c03a0776ed6efb0 100644 (file)
@@ -43,7 +43,7 @@ export interface LocationAsRelative {
   params?: RouteParams
 }
 
-interface RouteLocationOptions {
+export interface RouteLocationOptions {
   replace?: boolean
 }