
在 Nuxt 3 中,navigateTo 默认禁止跳转至外部 URL;若需在新标签页打开第三方网站,必须显式设置 external: true,否则 open.target: '_blank' 将被忽略。
在 nuxt 3 中,`navigateto` 默认禁止跳转至外部 url;否则 `open.target: '_blank'` 将被忽略。
Nuxt 3 的 navigateTo 是一个专为应用内路由导航设计的工具,其默认行为会拦截所有非当前应用域名的 URL(即外部链接),以防止意外跳转或安全风险。因此,即使你传入了 { open: { target: '_blank' } },若未声明 external: true,Nuxt 会直接忽略该配置,并可能抛出警告或静默失败。
✅ 正确用法如下:
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
<script setup lang="ts">
await navigateTo('https://nuxt.com', {
open: {
target: '_blank',
// 可选:添加 rel="noopener noreferrer" 提升安全性
rel: 'noopener noreferrer'
},
external: true // ⚠️ 必须显式启用,否则外部跳转无效
})
</script>? 关键点说明:
- external: true 是强制开关,告诉 Nuxt “此 URL 是外部地址,允许跳转”;
- open.target: '_blank' 仅在 external: true 启用后才生效;
- 建议同时设置 rel: 'noopener noreferrer',避免新页面通过 window.opener 访问原页面,防范安全漏洞(如 tab-nabbing);
- 若在服务端(SSR)上下文中调用,navigateTo 会自动降级为 window.open() 或重定向逻辑,但 external: true 仍是必要条件。
? 补充提示:
对于纯客户端跳转(如按钮点击事件),也可直接使用原生 window.open(),更直观且无需依赖 Nuxt 路由系统:
const openExternal = () => {
window.open('https://nuxt.com', '_blank', 'noopener,noreferrer')
}但若需与 Nuxt 的导航生命周期(如 onBeforeRouteLeave、useRouter 等)集成,或统一管理跳转逻辑,仍推荐使用 navigateTo + external: true 组合。

















