【Vue】路由打开新窗口
Vue实现路由跳转新窗口打开
1、标签实现新窗口打开:
官方文档中说 v-link 指令被 组件指令替代,且 不支持 target="_blank" 属性,如果需要打开一个新窗口必须要用 < a > 标签,但事实上vue2版本的 < router-link > 是支持 target="_blank" 属性的(tag=“a”),示例如下:
<router-link
tag="a"
target="_blank"
:to="{name:'homePage',query:{id:'Fate'}}">
I'm Fate
</router-link>
<!--注:只有tag="a"模式下 target="_blank" 属性才会生效。-->
2、函数实现跳转
有些时候需要在单击事件或者在函数中实现页面跳转,那么可以借助router的示例方法,使用 $router.resolve 这种方法能够实现新窗口打开,示例代码如下:
<template>
<div id="demo">
<span @click="()=>{ linkTo() }"></span>
</div>
</template>
<script>
export default {
name: "index",
methods: {
linkTo(){
let query = { id : "Fate" };
let routeData = this.$router.resolve({
name: "searchGoods",
query: query,
});
window.open(routeData.href, '_blank');
}
}
};
</script>