You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Vue Router正确重定向至外部网站?

Vue Router 跳转外部链接问题解决方法

Vue Router 的 redirect 属性默认仅处理内部路由路径,直接写入外部 URL 会被当作相对路径,拼接在当前域名后,因此出现 domain.com/https://www.google.com 的错误跳转。以下是两种可行的解决方式:

方式一:使用路由守卫 beforeEnter

直接在路由配置中通过守卫触发外部跳转,并阻止内部导航逻辑:

import { createRouter, createWebHistory } from "vue-router";
import Home from "@/views/Home.vue";
import Commands from "@/views/Commands.vue";

const routes = [
  {
    path: "/google",
    beforeEnter() {
      window.location.href = "https://www.google.com";
      return false; // 终止Vue Router内部导航
    },
  },
];

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes,
});

export default router;

方式二:封装外部跳转组件(适合复用场景)

先创建一个通用跳转组件 ExternalLink.vue:

<template></template>

<script setup>
import { onMounted } from 'vue';

const props = defineProps({
  url: {
    type: String,
    required: true
  }
});

onMounted(() => {
  window.location.href = props.url;
});
</script>

再在路由中引用该组件并传入目标 URL:

import { createRouter, createWebHistory } from "vue-router";
import ExternalLink from "@/components/ExternalLink.vue";

const routes = [
  {
    path: "/google",
    component: ExternalLink,
    props: { url: "https://www.google.com" }
  },
];

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes,
});

export default router;

内容的提问来源于stack exchange,提问作者Termin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:24:27