vue-router 打开新窗口新tab页

本文介绍在Vue项目中如何使用<router-link>和vue-router的resolve()方法实现在新标签页中打开链接。通过设置target属性为_blank或使用resolve()方法配合window.open(),可以轻松实现此功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候需求需要点击某个按钮能新开一个tab页显示内容,有两种方式可以实现。
一:<router-link></router-link>

//关键点:target="_blank"
<router-link target="_blank" to="/sys/setting">系统设置</router-link>

二:vue-router提供的**resolve()**方法

const {href} = Router.resolve({
	path: '/sys/setting'
});
window.open(href, '_blank');
### Vue3 中 `<router-view>` 的使用方法 `<router-view>` 是 Vue Router 提供的一个功能性组件,用于动态加载与当前路由匹配的视图组件。它会根据 `route.path` 渲染对应的组件[^2]。 #### 基本语法 在模板中可以直接使用 `<router-view>` 标签来定义视图区域: ```html <template> <div id="app"> <!-- 路由出口 --> <router-view></router-view> </div> </template> ``` #### 配合 Vue Router 使用 为了使 `<router-view>` 正常工作,需要先配置好 Vue Router 并将其注入到应用实例中。以下是完整的设置流程: 1. **安装 Vue Router** 如果尚未安装 Vue Router,则可以通过 npm 安装: ```bash npm install vue-router@next --save ``` 2. **创建路由文件** 创建一个名为 `router.js` 或类似的文件,定义路由规则: ```javascript import { createRouter, createWebHistory } from 'vue-router'; import Home from './views/Home.vue'; import About from './views/About.vue'; const routes = [ { path: '/', component: Home }, { path: '/about', component: About } ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router; ``` 3. **引入并挂载路由器** 在主入口文件(如 `main.js`)中引入并挂载路由器: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` 4. **运行效果** 当用户访问不同的 URL 地址时,Vue Router 会自动切换 `<router-view>` 内部显示的内容为对应路径下的组件[^4]。 #### 结合 `keep-alive` 缓存功能 如果希望某些面被缓存以便提升性能或者保留状态,可以将 `<router-view>` 包裹在一个 `<keep-alive>` 标签内。这样只有指定条件下的子组件会被缓存。 ```html <template> <div id="app"> <keep-alive include="Home"> <!-- 只有名称为 Home 的组件会被缓存 --> <router-view /> </keep-alive> </div> </template> ``` 注意:这里假设 `Home.vue` 文件中有 `export default { name: 'Home' }` 这样的声明[^1]。 #### 实际应用场景举例 当构建一个多标签的应用程序时,通常会在每次导航至面时记录该面的信息到全局变量或 Vuex store 中,并利用这些数据配合 `<router-link>` 动态生成顶部 Tab 列表项。点击某个 Tab 后重触发相应路由跳转逻辑即可完成多窗口间快速切换的需求[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值