Wenn Sie nur auf relative Pfade wie Interesse: /dashboard
, /about
etc, Andere Antworten.
Wenn Sie einen absoluten Pfad wie: https://www.google.com
zu einer neuen Registerkarte öffnen möchten , müssen Sie wissen, dass Vue Router NICHT dazu gedacht ist, diese zu verarbeiten.
Sie scheinen dies jedoch als Feature-Anfrage zu betrachten. # 1280 . Aber bis sie das tun,
Hier ist ein kleiner Trick, mit dem Sie externe Links mit dem Vue-Router verarbeiten können.
- Gehen Sie zur Routerkonfiguration (wahrscheinlich
router.js
) und fügen Sie diesen Code hinzu:
/* Vue Router is not meant to handle absolute urls. */
/* So whenever we want to deal with those, we can use this.$router.absUrl(url) */
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' // IMPORTANT to add this
link.click()
}
Wenn wir uns jetzt mit absoluten URLs beschäftigen, haben wir eine Lösung. Zum Beispiel, um Google auf einem neuen Tab zu öffnen
this.$router.absUrl('https://www.google.com)
Denken Sie daran, dass wir jedes Mal, wenn wir eine andere Seite für eine neue Registerkarte öffnen, diese verwenden müssen noopener noreferrer
.
Lesen Sie hier mehr
oder hier