message: chore: remove useless navigation duplicated
diff: /**
  * Vue Router support
  */
  -import { getCurrentInstance, ComponentPublicInstance } from 'vue';
  +import {
  + PropType,
  + ExtractPropTypes,
  + getCurrentInstance,
  + ComponentPublicInstance,
  +} from 'vue';
  import type { RouteLocation } from 'vue-router';
  -export type RouteProps = {
  - url?: string;
  - replace?: boolean;
  - to?: RouteLocation;
  -};
  -
  -export type RouteConfig = {
  - url?: string;
  - to?: RouteLocation;
  - replace?: boolean;
  +export const routeProps = {
  + to: [String, Object] as PropType<RouteLocation>,
  + url: String,
  + replace: Boolean,
  };
  -function isRedundantNavigation(err: Error) {
  - return (
  - err.name === 'NavigationDuplicated' ||
  - // compatible with vue-router@3.3
  - (err.message && err.message.indexOf('redundant navigation') !== -1)
  - );
  -}
  +export type RouteProps = ExtractPropTypes<typeof routeProps>;
  export function route(vm: ComponentPublicInstance<RouteProps>) {
  const router = vm.$router;
  const { to, url, replace } = vm;
  if (to && router) {
  - const promise = router[replace ? 'replace' : 'push'](to);
  -
  - /* istanbul ignore else */
  - if (promise && promise.catch) {
  - promise.catch((err) => {
  - if (err && !isRedundantNavigation(err)) {
  - throw err;
  - }
  - });
  - }
  + router[replace ? 'replace' : 'push'](to);
  } else if (url) {
  replace ? location.replace(url) : (location.href = url);
  }
  @@ -50,9 +34,3 @@ export function useRoute() {
  route(vm);
  };
  }
  -
  -export const routeProps = {
  - url: String,
  - replace: Boolean,
  - to: [String, Object],
  -};
  