Open router link in a new tab in Vue

featured Image

This is a short article on how to open router-link in a new tab or, a new browser window in VueJS.

In Vue, to navigate between different pages we use the <router-link> component with its to=”” attribute.

Example

<router-link to="/about">About</router-link>

This code will take us from a specific page to the /about page within the same browser tab.

Open Link in a New Tab

However, if we want to open the /about page in a new tab, then we have to add a target attribute with _blank as a value in our <router-link> component.

<router-link to="/about" target="_blank">About</router-link> 

Programatically, we can navigate a page and open it in a new tab using the $router instance.

Example:

<template>
  <div id="app">
    <button @click="aboutPage()">About</button>
  </div>
</template>

<script>
export default {
  methods: {
    aboutPage() {
      let route = this.$router.resolve({ path: "/about" });
      window.open(route.href);
    },
  },
};
</script>

In the above code, we have used this.$router.resolve() and window.open() method.

The resolve() method returns the normalized version of the route location. It includes a href property that we can use with the window.open() method to open the page in a new tab of the browser.

Open External Link in a New Tab In Vue

In VueJs, to open an external link in a new tab, we can use the HTML anchor tag <a> and then pass the target attribute and set the value to _black.

<template>
  <div id="app">
    <a href="https://en.wikipedia.org/" target="_blank">Wikipedia</a>
  </div>
</template>

In Vue, we can also open the external link in a new tab using programmatic navigation like this:

<template>
  <div id="app">
    <button @click="gotoWiki()">Go To Wikipedia</button>
  </div>
</template>

<script>
export default {
  methods: {
    gotoWiki() {
      window.open("https://en.wikipedia.org/", "_blank");
    },
  },
};
</script>

Related Topics:

Set URL Query Params In Vue Using Vue-Router

How To Redirect To External Url In Vue

Get the name of the current route in Vue

Related Posts

featured Image

How to add common header and footer in vuejs.

Here, in this article, we will learn how to add a common header and footer component in our vuejs application. In general, we always have the same header and footer…

Read more
featured Image

How to call a function in VUE template?

Here, we will learn on how to call a function in vue template. First, we have to define the function in the methods. and then we can use an event…

Read more
featured Image

How to redirect to external url in vue

Here, we will learn how to redirect to an external URL in vuejs application. Page Navigation is one of the basic features of a website. It helps us to navigate…

Read more