Vue: Die Komponente verschwindet beim ersten erneuten Rendern

Erstellt am 15. Aug. 2017  ·  5Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.4.2

Reproduktionslink

http://jsfiddle.net/yMv7y/3265/

Schritte zum Reproduzieren

Warten Sie auf der JSFiddle, bis setTimeout auf L15 nach zwei Sekunden abgeschlossen ist.

Was wird erwartet?

Damit CustomElA noch im DOM ist.

Was passiert eigentlich?

CustomElA wird beim erneuten Rendern aus dem DOM entfernt. Es wird jedoch beim dritten erneuten Rendern wieder angezeigt (getestet mit setInterval anstelle von setTimeout bei JSFiddle auf L16).


Die JSfiddle verwendet Vue v2.4.0, aber ich habe den Fehler in v2.4.2 lokal überprüft.

bug

Hilfreichster Kommentar

Sieht aus wie ein Fehler, danke, dass Sie ihn gemeldet haben. Sieht aus wie es in 2.1.4 eingeführt wurde. Es sieht jedoch so aus, als ob das Problem während des Patches von vnodes auftritt.

Bearbeiten: Es sieht so aus, als ob _isDestroyed bei init während des VNode-Patches falsch ist, sodass Mount nicht aufgerufen wird und aus dem Knotenbaum verschwindet

Alle 5 Kommentare

Sieht aus wie ein Fehler, danke, dass Sie ihn gemeldet haben. Sieht aus wie es in 2.1.4 eingeführt wurde. Es sieht jedoch so aus, als ob das Problem während des Patches von vnodes auftritt.

Bearbeiten: Es sieht so aus, als ob _isDestroyed bei init während des VNode-Patches falsch ist, sodass Mount nicht aufgerufen wird und aus dem Knotenbaum verschwindet

Dies ist behoben. Beachten Sie jedoch, dass das Element als "ersetzt" betrachtet wird, da Sie das Element ändern, das die Slots umschließt. Daher wird der gesamte Slot-Inhalt, einschließlich der darin enthaltenen Komponenten, zerstört und anschließend neu erstellt. So funktioniert das Vdom-Patching leider und es ist unwahrscheinlich, dass es sich ändert.

@ yyx990803
Klingt gut. Danke. Hast du einen Termin für die nächste Veröffentlichung?

Sie fragen sich auch, wann die nächste Version erscheinen wird, oder gibt es in der Zwischenzeit eine Möglichkeit, diese Version zu installieren? Vielen Dank.

@ Tolmark12 Klonen Sie das Repo, erstellen Sie die Dateien und führen Sie npm link , um die lokale Version von vue 😉 zu verwenden (dies sind sehr grobe Anweisungen).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

robertleeplummerjr picture robertleeplummerjr  ·  3Kommentare

lmnsg picture lmnsg  ·  3Kommentare

6pm picture 6pm  ·  3Kommentare

paceband picture paceband  ·  3Kommentare

hiendv picture hiendv  ·  3Kommentare