Wie kann ich Abfrageparameter in vue.js abrufen?Vue.js Abfrageparameter
Kann ich keinen Weg finden oder muss ich pure JS oder eine Bibliothek dafür verwenden?
Wie kann ich Abfrageparameter in vue.js abrufen?Vue.js Abfrageparameter
Kann ich keinen Weg finden oder muss ich pure JS oder eine Bibliothek dafür verwenden?
Gemäß den Dokumenten von haben Sie Zugriff auf ein $route
Objekt von Ihren Komponenten, die offen legen, was Sie benötigen. In diesem Fall
//from your component
console.log(this.$route.query.test) // outputs 'yay'
Yup! Wenn er nicht 'vue-router' verwendet, wäre das in der Tat ein Duplikat, da er Standard-JS-Methoden verwenden muss. – Jeff
Ich nehme einfach an, dass, weil der gleiche Benutzer gerade vor einer Frage über vue-Router gepostet hat, ich den Vue-Router-Tag erstellen würde, wenn ich den Ruf hatte, das –
guten Punkt zu tun! Ich ging voran und erstellte das 'vue-router' Tag und fügte es hinzu. – Jeff
Detailliertere Antwort, um den Neulingen von VueJs zu helfen.
<script src="https://unpkg.com/vue-router"></script>
var router = new VueRouter({
mode: 'history',
routes: []
});
var vm = new Vue({
router,
el: '#app',
mounted: function() {
q = this.$route.query.q
console.log(q)
},
});
Bitte erläutern Sie es –
Definieren Sie zuerst Ihr Router-Objekt, wählen Sie den Modus, der Ihnen passend erscheint. Sie können Ihre Routen in der Routenliste deklarieren. Als nächstes möchten Sie, dass Ihre Haupt-App weiß, dass der Router existiert, also deklarieren Sie ihn in der Haupt-App-Deklaration. Schließlich enthält die $ route-Instanz alle Informationen über die aktuelle Route. Mein Code wird nur den in der URL übergebenen Parameter protokollieren. (* Mounted ist vergleichbar mit document.ready, .ie wird aufgerufen, sobald die App fertig ist) – Sabyasachi
Für noch ahnungslosere Neulinge: VueRouter ist nicht im VueJS-Kern enthalten, daher sollten Sie den VueRouter separat hinzufügen: '< script src = "https://unpkg.com/vue-router"> ' – rustyx
Ohne vue-Route, teilen Sie die URL
var vm = new Vue({
....
created()
{
let uri = window.location.href.split('?');
if (uri.length == 2)
{
let vars = uri[1].split('&');
let getVars = {};
let tmp = '';
vars.forEach(function(v){
tmp = v.split('=');
if(tmp.length == 2)
getVars[tmp[0]] = tmp[1];
});
console.log(getVars);
// do
}
},
updated(){
},
Eine andere Lösung https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search:
var vm = new Vue({
....
created()
{
let uri = window.location.search.substring(1);
let params = new URLSearchParams(uri);
console.log(params.get("var_name"));
},
updated(){
},
Warum würden Sie 'location.href' selbst teilen, wenn' location.search' bereitwillig verfügbar ist? https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search z.B. 'var querypairs = window.location.search.substr (1) .split ('&');' Auch das Teilen der Query-Name-Wert-Paare mit' = 'funktioniert nicht immer, da auch benannte Query-Parameter ohne Wert übergeben werden können; '? par1 = 15 & par2' Ihr Code würde jetzt eine Ausnahme auf Par2 auslösen, wenn das Teilen durch '=' zu tmp mit nur 1 Element führt. – Arthur
Sorry würde keine Ausnahme werfen, aber Sie würden auch Par2 nicht fangen 'undefined' zu' getVars ['par2'] ''. – Arthur
die GET-Methode ist eine Zeichenfolge (Name/Wert-Paare), in der URL – erajuan
Mögliche Duplikat [Wie kann ich Query-String-Werte in JavaScript bekommen?] (Http: //stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript) –
Warum wird das unten gewählt? Ich brauche es für Vue.js. Wenn es eine Vue-Bibliothek oder etwas eingebautes gibt, wäre es gegenüber der rohen js bevorzugt. – Rob
Es gibt wahrscheinlich etwas in Vue Router, das es tut, wenn Sie das verwenden. –