vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue Router新窗口打开

Vue Router实现新窗口打开的三种方法

作者:爱写程序的小高

在Vue开发中,经常需要实现新窗口打开路由页面的需求,本文将系统介绍Vue Router中实现新窗口打开的三种主要方法,包括router-link组件方式、编程式导航方式和原生window.open方式,需要的朋友可以参考下

在Vue开发中,经常需要实现新窗口打开路由页面的需求。本文将系统介绍Vue Router中实现新窗口打开的三种主要方法,包括router-link组件方式、编程式导航方式和原生window.open方式。

一、router-link组件方式

最简单的方式是使用router-link组件的target="_blank"属性:

<template>
  <router-link 
    to="/new-page" 
    target="_blank"
    rel="noopener noreferrer"
  >
    打开新窗口
  </router-link>
</template>

特点

二、编程式导航方式

通过$router.resolve配合window.open实现:

<template>
  <button @click="openNewWindow">编程式导航打开</button>
</template>

<script>
export default {
  methods: {
    openNewWindow() {
      const route = this.$router.resolve({
        path: '/new-page',
        query: { id: 123 }
      });
      window.open(route.href, '_blank', 'noopener,noreferrer');
    }
  }
}
</script>

特点

三、原生window.open方式

直接拼接完整URL实现:

<template>
  <button @click="nativeOpenNewWindow">原生方式打开</button>
</template>

<script>
export default {
  methods: {
    nativeOpenNewWindow() {
      window.open(
        `${window.location.origin}/new-page?id=123`,
        '_blank',
        'noopener,noreferrer'
      );
    }
  }
}
</script>

特点

路由配置示例

import Vue from 'vue'
import Router from 'vue-router'
import NewPage from '../views/NewPage.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/new-page',
      name: 'NewPage',
      component: NewPage
    }
  ]
})

参数传递对比

方法参数传递方式适用场景
router-link通过:to绑定对象静态链接
编程式导航通过query对象动态参数
原生window.openURL拼接简单场景

到此这篇关于Vue Router实现新窗口打开的三种方法的文章就介绍到这了,更多相关Vue Router新窗口打开内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文