Festlegen eines Timers mit einer Vue.js-Klasse

8

Ich benutze nur Vue.js, um Beiträge auf einer Seite zu aktualisieren, mit denen ich mich herumgebe, das ist, was ich bisher gelernt habe (ich lerne immer noch Javascript, und nicht zu gut darin)

[app.js]

%Vor%

[postlist.js]

%Vor%

Was ich suche, ist updatePosts alle x Sekunden auszufeuern, wie mache ich das?

Ich habe versucht, dies in app.js

zu tun %Vor%

und versuchte, setInterval in die Komponente selbst zu setzen

ich bin ziemlich verloren damit, was ist der beste Weg, um dies zu erreichen?

updatePosts läuft alle x Sekunden?

    
Jimmy Howe 11.10.2015, 13:57
quelle

2 Antworten

5

Ich habe auch Probleme mit Scopes in Vue.

das sollte funktionieren

%Vor%

Funktionen in Vue funktionieren irgendwie anders, weil Ihre Methode updatePosts keine reguläre Funktion ist. Diese Funktion ist in $vm.methods object definiert. So kann es nicht regelmäßig aufgerufen werden wie setTimeout($vm.updatePosts) . Tatsächlich existiert $vm.updatePosts nicht. Wenn du es wie $vm.updatePosts() nennst, ist es eine andere Geschichte. $vm instance ruft automatisch ihre Methode auf ... Der korrekte Weg ist setTimeout(function(){ self.updatePosts() },2000)

    
WhipsterCZ 13.09.2016 09:59
quelle
2

Sie können den Anfragezyklus in create oder anderswo im Lebenszyklus starten. Es ist auch wahrscheinlich besser, Rekursion hier zu verwenden, damit Sie auf die Antwort warten können, bevor Sie eine andere zurücksenden. Ich habe diesen Code nicht vollständig getestet, aber es sollte funktionieren.

%Vor%     
Bill Criswell 11.10.2015 16:25
quelle

Tags und Links