this.$router.push打开新页签
时间: 2023-10-31 09:56:36 浏览: 65
在Vue.js中,this.$router.push是用来进行路由跳转的,但是默认情况下它会在当前窗口进行跳转,而不是在新的页签打开。如果你希望在新的页签中打开链接,你可以使用原生的JavaScript方法window.open来实现。以下是一个示例:
```javascript
// 在Vue组件中使用window.open打开新页签
openNewTab() {
window.open(this.$router.resolve({ name: 'yourRouteName' }).href, '_blank');
}
```
在上面的示例中,`yourRouteName`是你想要跳转的路由名称。通过`this.$router.resolve`获取到路由的href,并将其作为参数传递给`window.open`方法来在新的页签中打开链接。
注意:这种方式会触发浏览器的弹窗拦截器,一些浏览器可能会阻止弹出新页签,请确保在用户交互的上下文中使用该方法。
相关问题
this.$router.push 打开新窗口
this.$router.push是Vue.js中的路由导航方法,用于进行页面跳转。它可以用来打开新窗口,需要在路由配置中进行相应的设置。
要在新窗口中打开页面,可以通过在路由配置中设置target属性为"_blank"来实现。具体步骤如下:
1. 在Vue组件中使用this.$router.push方法进行路由跳转,例如:
```
this.$router.push({ path: '/newPage', target: '_blank' });
```
2. 在路由配置文件(通常是router/index.js)中,对应的路由配置项中添加target属性,例如:
```
{
path: '/newPage',
name: 'NewPage',
component: NewPageComponent,
meta: {
target: '_blank'
}
}
```
3. 在项目的路由配置文件中,添加全局的导航守卫(beforeEach),用于处理目标为"_blank"的路由跳转,例如:
```
router.beforeEach((to, from, next) => {
if (to.meta.target === '_blank') {
window.open(to.fullPath);
next(false);
} else {
next();
}
});
```
这样配置后,当使用this.$router.push方法进行路由跳转时,如果目标路由的meta中设置了target为"_blank",则会在新窗口中打开对应的页面。
this.$router.push打开新窗口
在Vue.js中使用`this.$router.push`打开新窗口需要使用`window.open`方法。具体实现方式可以在`this.$router.push`后面加上一个回调函数,然后在回调函数中使用`window.open`打开新窗口,例如:
```javascript
this.$router.push('/new-page', () => {
window.open('/new-page', '_blank')
})
```
其中`'/new-page'`是要跳转的页面路径,`'_blank'`表示在新窗口中打开。
需要注意的是,浏览器可能会阻止弹出窗口,需要在浏览器的设置中允许弹出窗口。此外,为了防止浏览器拦截,`window.open`方法必须在用户主动操作的事件处理函数中调用,例如在按钮点击事件处理函数中调用。