Kann man Vue.js zwingen, neu zu laden/neu zu rendern?

Nur eine kurze Frage.

Kann man Vue.js zwingen, alles neu zu laden/berechnen? Wenn ja, wie?

Lösung

Versuchen Sie diesen Zauberspruch:

vm.$forceUpdate();

Es müssen keine hängenden Variablen erstellt werden :)

Update: Ich fand diese Lösung, als ich gerade erst mit VueJS zu arbeiten begann. Allerdings erwies sich dieser Ansatz bei näherer Betrachtung als eine Krücke. Soweit ich mich erinnere, in einer Weile habe ich es loswerden einfach setzen alle Eigenschaften, die nicht automatisch aktualisieren (meist verschachtelte) in berechnete Eigenschaften.

Mehr Informationen hier: https://vuejs.org/v2/guide/computed.html

Kommentare (5)

Verwenden Sie vm.$set('varName', value). Suchen Sie nach Details in Change_Detection_Caveats.

Kommentare (0)

Ich habe einen Weg gefunden. Es ist ein bisschen hacky, aber es funktioniert.

vm.$set("x",0);
vm.$delete("x");

Wobei vm Ihr View-Model-Objekt ist und x eine nicht existierende Variable ist.

Vue.js wird sich darüber im Konsolenlog beschweren, aber es löst einen Refresh für alle Daten aus. Getestet mit Version 1.0.26.

Kommentare (0)