2016-10-21 4 views
1

Ich erhalte Daten in einer Funktion und diese Funktion muss eine neue Seite laden. Ich habe dies mit Jquery mit der Methode .load() gemacht, aber meine Vue-Methode erhält einen Fehler, der besagt, dass das Element auf der anderen Seite nicht gefunden werden kann. Ich glaube, das könnte ein besserer Ansatz sein, aber ich weiß nicht, wie ich es kann Pass-Daten über eine vue KomponenteÜbergabe von Daten über Seiten mit Vue

static foo(a,b){ 
    $('#maindiv').load("/newPage"); 
    new Vue({ 
     el: '#newPageElem', 
     data: { 
      vueVar1:a 
      vueVar2:b 
     }, 

    }); 
} 

Wie kann ich das tun? Ich glaube, dass die Verwendung von Jquery nicht der beste Weg ist, dies zu erreichen, aber ich weiß nicht, wie man Routen mit vue ändert und Parameter zwischen ihnen übergibt.

Danke.

+0

Sie können sich den [Vue-Router] (http://router.vuejs.org/en/essentials/getting-started.html) ansehen, mit dem Sie Komponenten Routen zuordnen können. –

Antwort

3

Sie können einen Blick auf vue-router hier werfen: http://router.vuejs.org/en/essentials/getting-started.html - es ermöglicht Ihnen, alle clientseitigen Routen zu behandeln.

Für http machen ruft Daten vom Server erhalten Sie vue-resource (https://github.com/vuejs/vue-resource)

Es ist besser, können Misch jQuery mit Vue zu vermeiden, wie Vue für die Wiedergabe des DOM verantwortlich ist. Wenn Sie mit jQuery DOM-Änderungen vornehmen, wird dies beim nächsten DOM-Update von Vue überschrieben. Sie werden also viel Zeit mit dem Debuggen verbringen.

Sie können eine Vue-App auch nicht innerhalb einer Funktion instanziieren, wie in Ihrem Codebeispiel zu sehen ist, es sei denn, Sie rufen die Funktion beim Laden der Seite auf. Im Idealfall sollten die ersten paar Zeilen des Skripts die Vue App starten.

+0

Also wie würde ich die Methode aufrufen, wenn die Seite geladen ist? Sollte ich ein Skript-Tag in der HTML-Seite machen? –

+0

Ja, Sie können ein Skript-Tag am Ende der HTML-Seite für 'neues Vue ({..}) 'verwenden, das die Vue-App startet und das DOM rendert. Oder Sie können 'vue-cli' ausprobieren, was ein wenig verwirrend sein kann, wenn Sie gerade erst anfangen. – Mani

Verwandte Themen