Wie kann ich Abfrageparameter in Vue.js abrufen?
ZB http://somesite.com?test=yay
.
Sie können keinen Weg zum Abrufen finden oder muss ich dafür reines JS oder eine Bibliothek verwenden?
Wie kann ich Abfrageparameter in Vue.js abrufen?
ZB http://somesite.com?test=yay
.
Sie können keinen Weg zum Abrufen finden oder muss ich dafür reines JS oder eine Bibliothek verwenden?
Antworten:
Nach der Dokumentation der Route Objekt , haben Sie Zugriff auf ein
$route
Objekt aus Ihren Komponenten, das enthüllen , was Sie brauchen. In diesem Fallquelle
vue-router
wäre dies in der Tat ein Duplikat, da er Standard-JS-Methoden verwenden muss.vue-router
Tag erstellt und hinzugefügt.return next({ name: 'login', query:{param1: "foo" }, });
funktioniert nicht. Innerhalb der Login-Komponente ist die Requisiteparam1
undefiniert.Teilen Sie die URL ohne Vue-Route
Eine andere Lösung https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search :
quelle
location.href
trennen, wenn eslocation.search
verfügbar ist? developer.mozilla.org/en-US/docs/Web/API/… zB Dasvar querypairs = window.location.search.substr(1).split('&');
Aufteilen der Abfrage-Name-Wert-Paare durch '=' funktioniert nicht immer, da Sie benannte Abfrageparameter auch ohne Wert übergeben können. Beispiel:?par1=15&par2
Ihr Code würde jetzt eine Ausnahme auf Par2 auslösen, da das Teilen durch '=' zu tmp mit nur 1 Element führt.undefined
zugetVars['par2']
.Detailliertere Antwort, um den Neulingen von VueJS zu helfen:
Und der Code selbst:
quelle
<script src="https://unpkg.com/vue-router"></script>
new Vue({ router, ... })
ist keine gültige Syntax.Eine andere Möglichkeit (vorausgesetzt, Sie verwenden
vue-router
) besteht darin, den Abfrageparameter einer Requisite in Ihrem Router zuzuordnen. Dann können Sie es wie jede andere Requisite in Ihrem Komponentencode behandeln. Fügen Sie beispielsweise diese Route hinzu.Dann können Sie in Ihrer Komponente die Requisite wie gewohnt hinzufügen.
Dann wird es verfügbar sein
this.foo
und Sie können alles tun, was Sie wollen (wie einen Beobachter einstellen usw.)quelle
Ab diesem Datum ist der korrekte Weg gemäß den dynamischen Routing-Dokumenten :
anstatt
quelle
query
, um die Abfragen von der URL abzurufen. Aus den Dokumenten: Zusätzlich zu $ route.params macht das $ route-Objekt auch andere nützliche Informationen verfügbar, wie z. B. $ route.query (wenn die URL eine Abfrage enthält)URL:
www.example.com?name=john&lastName=doe
Hinweis: In
beforeRouteEnter
Funktion können wir nicht die Eigenschaften der Komponente zugreifen wie:this.propertyName
.Das ist , warum ich die passieren müssen ,vm
umnext
function.It ist die recommented Weg zum Zugang der vue instance.Actually dievm
es für vue Instanz stehtquelle
Sie können mit dieser Funktion erhalten.
quelle
Wenn Ihre URL ungefähr so aussieht:
Wenn '123' ein Parameter mit dem Namen 'id' ist (URL wie / etwas /: id), versuchen Sie Folgendes:
quelle
Wenn Ihr Server PHP verwendet, können Sie dies tun:
Funktioniert einfach.
quelle