2016-02-27 26 views

Odpowiedz

35

Jeśli używasz vue-router, powinieneś użyć router.go(path), aby nawigować do konkretnej trasy. Do routera można uzyskać dostęp z poziomu komponentu przy użyciu this.$router.

W przeciwnym razie, window.location.href = 'some url'; działa dobrze w przypadku aplikacji niezwiązanych z jedną stroną.

EDIT: router.go() zmieniony w VueJS 2.0. Możesz teraz użyć router.push({ name: "yourroutename"}) lub tylko router.push("yourroutename"), aby przekierować.

https://router.vuejs.org/en/essentials/navigation.html

+1

W moim przypadku użycie jest skierowanie do innego non pojedynczej strony –

+0

Yea wystarczy użyć 'window.location' – Jeff

+3

ja trafiałem:' Uncaught ReferenceError: router nie zdefiniowano "error, Jak wprowadzić router w komponent? – Saurabh

10

wystarczy użyć:

window.location.href = "http://siwei.me" 

Nie używaj vue-Router, w przeciwnym razie zostanie przekierowany do "http://yoursite.com/#!/http://siwei.me"

moje środowisko: węzła 6.2.1, Vue 1.0.21, Ubuntu.

+0

Nie widzę żadnego powodu, dlaczego powinno to być w podwójnych cudzysłowach ..? – Moritz

+0

Właściwie [standardjs] (http://standardjs.com/) mówi "Użyj pojedynczych cudzysłowów dla ciągów, z wyjątkiem, aby uniknąć ucieczki." – Moritz

+0

to było jakiś czas temu, ale faktycznie rozwiązałem to za pomocą pojedynczych cudzysłowów, ale myślę, że podwójne cytaty powinny również działać i mogą być użyteczne w złożonych linkach. –

23

Zgodnie z docs, router.push wydaje się preferowanym sposobem:

To navigate to a different URL, use router.push. This method pushes a new entry into the history stack, so when the user clicks the browser back button they will be taken to the previous URL.

źródło: https://router.vuejs.org/en/essentials/navigation.html

FYI: WebPACK konfiguracji & komponentów, pojedynczej aplikacji strony (gdzie można importować do routera poprzez Menem .js), musiałem zadzwonić do funkcji routera, mówiąc:

this.$router 

Przykład: jeśli chcesz przekierować na trasę o nazwie „Home” po warunek jest spełniony:

this.$router.push('Home') 
+0

To pytanie nie ma nic wspólnego z kompilacją (pakietem internetowym). –

+3

Dzięki za upadek, mimo że większość ludzi będzie rozwijać się za pomocą vue cli, pakietu internetowego, routera i sklepu/vuex i najprawdopodobniej napotka na problem braku możliwości połączenia się z routerem. –

+3

to powinna być właściwa odpowiedź – felipekm

Powiązane problemy