From 12cadc42a1cf31e89f4ee52432ff56d1560c0275 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Sat, 26 Sep 2020 11:17:49 +0800 Subject: [PATCH] chore: adjust useRoute --- src/composition/use-route.ts | 24 +++++++++++++----------- src/tabs/index.js | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/composition/use-route.ts b/src/composition/use-route.ts index ca34e9b51..c7776ba64 100644 --- a/src/composition/use-route.ts +++ b/src/composition/use-route.ts @@ -1,8 +1,14 @@ /** * Vue Router support */ -import { getCurrentInstance } from 'vue'; -import type { Router, RouteLocation } from 'vue-router'; +import { getCurrentInstance, ComponentPublicInstance } from 'vue'; +import type { RouteLocation } from 'vue-router'; + +export type RouteProps = { + url?: string; + replace?: boolean; + to?: RouteLocation; +}; export type RouteConfig = { url?: string; @@ -18,8 +24,10 @@ function isRedundantNavigation(err: Error) { ); } -export function route(router: Router, props: RouteProps) { - const { to, url, replace } = props; +export function route(vm: ComponentPublicInstance) { + const router = vm.$router; + const { to, url, replace } = vm; + if (to && router) { const promise = router[replace ? 'replace' : 'push'](to); @@ -39,16 +47,10 @@ export function route(router: Router, props: RouteProps) { export function useRoute() { const vm = getCurrentInstance()!.proxy!; return () => { - route(vm.$router, vm as RouteProps); + route(vm); }; } -export type RouteProps = { - url?: string; - replace?: boolean; - to?: RouteLocation; -}; - export const routeProps = { url: String, replace: Boolean, diff --git a/src/tabs/index.js b/src/tabs/index.js index 30a620ddb..64712e378 100644 --- a/src/tabs/index.js +++ b/src/tabs/index.js @@ -273,7 +273,7 @@ export default createComponent({ }); emit('click', name, title); - route(item.$router, item); + route(item); } };