Si vous êtes intéressé uniquement sur des chemins relatifs comme: /dashboard
, /about
etc, Voir d' autres réponses.
Si vous voulez ouvrir un chemin absolu comme: https://www.google.com
vers un nouvel onglet, vous devez savoir que Vue Router n'est PAS destiné à les gérer.
Cependant, ils semblent considérer cela comme une demande de fonctionnalité. # 1280 . Mais jusqu'à ce qu'ils fassent ça,
Voici une petite astuce que vous pouvez faire pour gérer les liens externes avec vue-router.
- Accédez à la configuration du routeur (probablement
router.js
) et ajoutez ce code:
Router.prototype.absUrl = function(url, newTab = true) {
const link = document.createElement('a')
link.href = url
link.target = newTab ? '_blank' : ''
if (newTab) link.rel = 'noopener noreferrer'
link.click()
}
Désormais, chaque fois que nous traitons des URL absolues, nous avons une solution. Par exemple pour ouvrir google dans un nouvel onglet
this.$router.absUrl('https://www.google.com)
N'oubliez pas que chaque fois que nous ouvrons une autre page vers un nouvel onglet, nous DEVONS utiliser noopener noreferrer
.
En savoir plus ici
ou ici