feat: add useRoute

This commit is contained in:
chenjiahan
2020-08-26 11:06:32 +08:00
parent 9f372af1ec
commit 762aed3e5d
6 changed files with 32 additions and 33 deletions
+10 -3
View File
@@ -1,7 +1,7 @@
/**
* Vue Router support
*/
import { getCurrentInstance } from 'vue';
import type { Router, RouteLocation } from 'vue-router';
export type RouteConfig = {
@@ -18,8 +18,8 @@ function isRedundantNavigation(err: Error) {
);
}
export function route(router: Router, config: RouteConfig) {
const { to, url, replace } = config;
export function route(router: Router, props: RouteProps) {
const { to, url, replace } = props;
if (to && router) {
const promise = router[replace ? 'replace' : 'push'](to);
@@ -36,6 +36,13 @@ export function route(router: Router, config: RouteConfig) {
}
}
export function useRoute() {
const vm = getCurrentInstance()!.proxy!;
return () => {
route(vm.$router, vm as RouteProps);
};
}
export type RouteProps = {
url?: string;
replace?: boolean;