Chciałbym dokonać przekierowania w Vue.js
podobny sposób do waniliowego javascript
window.location.href = 'some_url'
Jak mogłem to osiągnąć w Vue.js?
vue.js
url-routing
vuejs2
vue-router
Jimmy Obonyo Abor
źródło
źródło
Odpowiedzi:
Jeśli korzystasz
vue-router
, użyj go,router.go(path)
aby nawigować do określonej trasy. Dostęp do routera można uzyskać z poziomu komponentu za pomocąthis.$router
.W przeciwnym razie
window.location.href = 'some url';
działa dobrze w przypadku aplikacji innych niż jednostronicowe.EDYCJA :
router.go()
zmieniona w VueJS 2.0. Możesz użyćrouter.push({ name: "yourroutename"})
lub po prosturouter.push("yourroutename")
teraz, aby przekierować.https://router.vuejs.org/guide/essentials/named-routes.html
źródło
Uncaught ReferenceError: router is not defined
błąd, jak wstrzyknąć router w komponencie?this.$router.push('routename)
Według dokumentacji router.push wydaje się być preferowaną metodą:
źródło: https://router.vuejs.org/en/essentials/navigation.html
FYI: Konfiguracja Webpack i komponentów, aplikacja na jednej stronie (gdzie importujesz router przez Main.js), musiałem wywołać funkcje routera, mówiąc:
Przykład: jeśli chcesz przekierować na trasę o nazwie „Dom” po spełnieniu warunku:
źródło
po prostu użyj:
Nie używaj routera vue, w przeciwnym razie zostaniesz przekierowany do „ http://yoursite.com/#!/http://siwei.me ”
moje środowisko: węzeł 6.2.1, vue 1.0.21, Ubuntu.
źródło
Wewnątrz tagu skryptu komponentu możesz użyć routera i zrobić coś takiego
źródło
Po prostu martwy prosty routing:
źródło
też mogę spróbować ...
źródło
jeśli chcesz przekierować na inną stronę
this.$router.push({path: '/pagename'})
jeśli chcesz trasować z parametrami
this.$router.push({path: '/pagename', param: {param1: 'value1', param2: value2})
źródło
„url” to adres internetowy, który chcesz przekierować.
źródło
Możesz także użyć v-bind bezpośrednio do szablonu, na przykład ...
:
jest skrótv-bind
.źródło
`/path-to-route/${IdVariable}`
" Lub nazwanej trasy, o której mowa tutaj ( router.vuejs.org/guide/essentials/named-routes.html )::href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
Jeśli ktoś chce stałego przekierowania z jednej strony
/a
na inną/b
Możemy skorzystać z
redirect:
opcji dodanej wrouter.js
. Na przykład, jeśli chcemy przekierowywać użytkowników zawsze na oddzielną stronę, kiedy wpisuje główny lub podstawowy adres URL/
:źródło
źródło
Więc szukałem tylko tego, gdzie umieścić
window.location.href
i doszedłem do wniosku, że najlepszym i najszybszym sposobem przekierowania są trasy (w ten sposób nie czekamy, aż coś się załaduje, zanim przekierujemy).Lubię to:
Może to komuś pomoże ...
źródło
Aby zachować zgodność z pierwotnym żądaniem:
Możesz zrobić coś takiego:
Zauważ, że nie korzysta to z używania routera Vue, ale jeśli chcesz „wykonać przekierowanie w Vue.js podobne do zwykłego javascript”, to zadziała.
źródło