@@ -12,6 +12,8 @@ import { registerActionDispatcher } from "./router-dispatcher-service";
12
12
13
13
import routerMixin from "./router-mixin" ;
14
14
15
+ const routers = [ ] as RouterService [ ] ;
16
+
15
17
/**
16
18
* Create router wrapper function
17
19
*
@@ -32,11 +34,15 @@ export const createRouter = (
32
34
...routerOptions ,
33
35
} ) ;
34
36
37
+ routers . push ( router ) ;
38
+
35
39
// Vue 3 compatibility
36
40
if ( vm . createApp && vm . config . globalProperties ) {
37
41
vm . config . globalProperties . $routeTo = router . push . bind ( router ) ;
38
42
vm . config . globalProperties . $routeBack = router . back . bind ( router ) ;
39
43
vm . config . globalProperties . $router = router ;
44
+
45
+ vm . provide ( '$router' , router ) ;
40
46
} else {
41
47
proto . $routeTo = router . push . bind ( router ) ;
42
48
proto . $routeBack = router . back . bind ( router ) ;
@@ -62,6 +68,14 @@ export const createRouter = (
62
68
return router ;
63
69
} ;
64
70
71
+ export const useRouter = ( routerIndex = 0 ) => {
72
+ return routers [ routerIndex ] ;
73
+ } ;
74
+
75
+ export const useRoute = ( routerIndex = 0 ) => {
76
+ return routers [ routerIndex ] . getCurrentRoute ( ) ;
77
+ } ;
78
+
65
79
export default {
66
80
createRouter,
67
81
} ;
0 commit comments