Jeśli jesteś zainteresowany tylko na względnych ścieżek takich jak: /dashboard
, /about
etc, zobacz inne odpowiedzi.
Jeśli chcesz otworzyć absolutną ścieżkę, taką jak: https://www.google.com
do nowej karty, musisz wiedzieć, że Vue Router NIE jest przeznaczony do ich obsługi.
Wydaje się jednak, że uważają to za prośbę o dodanie funkcji. # 1280 . Ale dopóki tego nie zrobią,
Oto mała sztuczka, którą możesz zrobić, aby obsłużyć zewnętrzne łącza za pomocą vue-router.
- Przejdź do konfiguracji routera (prawdopodobnie
router.js
) i dodaj ten kod:
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()
}
Teraz, gdy mamy do czynienia z bezwzględnymi adresami URL, mamy rozwiązanie. Na przykład, aby otworzyć Google na nowej karcie
this.$router.absUrl('https://www.google.com)
Pamiętaj, że ilekroć otwieramy kolejną stronę w nowej karcie, MUSIMY z niej skorzystać noopener noreferrer
.
Przeczytaj więcej tutaj
lub tu