Ich möchte eine Umleitung Vue.js
ähnlich dem Vanille-Javascript durchführen
window.location.href = 'some_url'
Wie könnte ich dies in Vue.js erreichen?
Ich möchte eine Umleitung Vue.js
ähnlich dem Vanille-Javascript durchführen
window.location.href = 'some_url'
Wie könnte ich dies in Vue.js erreichen?
Antworten:
Wenn Sie verwenden vue-router
, sollten Sie verwenden router.go(path)
, um zu einer bestimmten Route zu navigieren. Auf den Router kann von innerhalb einer Komponente mit zugegriffen werden this.$router
.
Andernfalls, window.location.href = 'some url';
funktioniert es gut für nicht einseitige Apps.
EDIT : router.go()
geändert in VueJS 2.0. Sie können router.push({ name: "yourroutename"})
oder nur verwendenrouter.push("yourroutename")
jetzt umleiten.
Uncaught ReferenceError: router is not defined
Fehler: Wie wird der Router in die Komponente eingefügt?
this.$router.push('routename)
Laut den Dokumenten scheint router.push die bevorzugte Methode zu sein:
Verwenden Sie router.push, um zu einer anderen URL zu navigieren. Diese Methode verschiebt einen neuen Eintrag in den Verlaufsstapel. Wenn der Benutzer auf die Schaltfläche "Zurück" des Browsers klickt, wird er zur vorherigen URL weitergeleitet.
Quelle: https://router.vuejs.org/en/essentials/navigation.html
Zu Ihrer Information: Webpack & Komponenten-Setup, Single-Page-App (wo Sie den Router über Main.js importieren), ich musste die Router-Funktionen aufrufen, indem ich sagte:
this.$router
Beispiel: Wenn Sie zu einer Route namens "Home" umleiten möchten, nachdem eine Bedingung erfüllt ist:
this.$router.push('Home')
benutz einfach:
window.location.href = "http://siwei.me"
Verwenden Sie keinen Vue-Router, da Sie sonst zu " http://yoursite.com/#!/http://siwei.me " weitergeleitet werden.
Meine Umgebung: Knoten 6.2.1, Vue 1.0.21, Ubuntu.
In einem Komponentenskript-Tag können Sie den Router verwenden und so etwas tun
this.$router.push('/url-path')
Nur ein kinderleichtes Routing:
this.$router.push('Home');
kann das auch versuchen ...
router.push({ name: 'myRoute' })
Sie können die V-Bindung auch direkt an die Vorlage verwenden, z.
<a :href="'/path-to-route/' + IdVariable">
das :
ist die Abkürzung von v-bind
.
`/path-to-route/${IdVariable}`
" Oder die hier genannte benannte Route ( router.vuejs.org/guide/essentials/named-routes.html ): :href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
Wenn jemand eine permanente Umleitung von einer Seite /a
auf eine andere Seite wünscht/b
Wir können die redirect:
in der Option hinzugefügte Option verwenden router.js
. Zum Beispiel, wenn wir die Benutzer immer auf eine separate Seite umleiten möchten, wenn er die Stamm- oder Basis-URL eingibt /
:
const router = new Router({
mode: "history",
base: process.env.BASE_URL,
routes: [
{
path: "/",
redirect: "/someOtherPage",
name: "home",
component: Home,
// () =>
// import(/* webpackChunkName: "home" */ "./views/pageView/home.vue"),
},
]
Also, was ich suchte, war nur, wo ich das platzieren solltewindow.location.href
und die Schlussfolgerung, zu der ich kam, war, dass der beste und schnellste Weg zum Umleiten in Routen besteht (auf diese Weise warten wir nicht auf das Laden von etwas, bevor wir umleiten).
So was:
routes: [
{
path: "/",
name: "ExampleRoot",
component: exampleComponent,
meta: {
title: "_exampleTitle"
},
beforeEnter: () => {
window.location.href = 'https://www.myurl.io';
}
}]
Vielleicht hilft es jemandem ..
Um mit Ihrer ursprünglichen Anfrage in Einklang zu bleiben:
window.location.href = 'some_url'
Sie können so etwas tun:
<div @click="this.window.location='some_url'">
</div>
Beachten Sie, dass dies die Verwendung des Routers von Vue nicht nutzt. Wenn Sie jedoch "eine Umleitung in Vue.js ähnlich dem Vanille-Javascript vornehmen" möchten, funktioniert dies.