• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
返回主页

Journey&Flower

  • 博客园
  • 首页
  • 新随笔
  • 联系
  • 订阅
  • 管理

vue-router跳转时打开新页面的两种方法

1、标签实现新窗口打开

官方文档中说 v-link 指令被 组件指令替代,且 不支持 target="_blank" 属性,如果需要打开一个新窗口必须要用标签,但事实上vue2版本的 是支持 target="_blank" 属性的(tag="a"),如下:

<router-link target="_blank" :to="{path:'/home',query:{id:'1'}}">新页面打开home页</router-link>

2、编程式导航

有些时候需要在单击事件或者在函数中实现页面跳转,那么可以借助router的示例方法,通过编写代码实现。我们常用的是 $router.push 和 \(router.go 但是vue2.0以后,这种方式就不支持新窗口打开的属性了,这个时候就需要使用this.\)router.resolve,如下:

1.配置路由

...\src\router\index.js

  {
    path: '/share',
    name: 'share',
    title: '登录',
    component: () => import('@/views/share'),
  },

2.配置路由白名单

...\src\permission.js

3.实现跳转

query: {id:96} 是传到新页面的参数 _blank 是在新页签中打开页面

seeShare(){
   let routeUrl = this.$router.resolve({
     path: "/share",
     query: {id:96}
   });
   window.open(routeUrl.href, '_blank');

4.跳转后页面接收参数

  created() {
    this.volumeNo = this.$route.query.id;
    });
  },

学习来源:

mwh321的博客

https://blog.csdn.net/qq_37939251/article/details/106240043

posted @ 2023-02-04 20:26  Journey&Flower  阅读(2217)  评论(0)    收藏  举报
刷新页面返回顶部

公告

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3