Vue: Vue ruft Watcher nicht an, wenn Sie die Requisite in beforeDestroy ändern

Erstellt am 23. Mai 2018  ·  3Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.5.16

Reproduktionslink

https://jsfiddle.net/86s8qufj/

Schritte zum Reproduzieren

  1. Reproduktionslink öffnen
  2. Konsole öffnen
  3. Klicken Sie auf die Schaltfläche "Testkomponente umschalten".
    Dies erstellt TestComponent für Sie.
  4. Versuchen Sie, etwas in der Eingabe zu ändern. Sie können in der Konsole 'In testInfo watcher' sehen, was bedeutet, dass testInfo watcher aufgerufen hat.
  5. Klicken Sie erneut auf die Schaltfläche "Toggle TestComponent".
    Dies zerstört TestComponent.
    Im beforeDestroy-Hook ändere ich die Eigenschaft 'testInfo'.
    Aber Sie können in der Konsole nur 'In beforeDestroy' anstelle von 'In beforeDestroy' und 'In testInfo watcher' sehen.

Was wird erwartet?

Ich erwarte, dass der Watcher für die Eigenschaft 'testInfo' aufgerufen wird, wenn ich ihn im beforeDestory-Hook ändere.

Was passiert eigentlich?

Ich ändere die Eigenschaft 'testInfo' im Hook beforeDestroy, aber Watcher ruft nicht an.

Hilfreichster Kommentar

Ich würde sagen, es wäre schön, es in der Dokumentation zu erwähnen - denn jetzt gibt es "Aufgerufen kurz bevor eine Vue-Instanz zerstört wird. Zu diesem Zeitpunkt ist die Instanz noch voll funktionsfähig."

Alle 3 Kommentare

Auch wenn Sie versuchen, testInfo in einen zerstörten Hook einzuloggen, sehen Sie einen neuen Wert. Aber das Objekt sollte zerstört werden....

beforeDestroy passiert kurz vor dem Abriss der Vue-Instanz, daher ist es normal, dass Watcher nicht auslösen, da sie ausgelöst werden würden, sobald die Instanz zerstört wird (was die meisten Watcher-Funktionen ungültig macht).
Sie sollten den Beobachter selbst im beforeDestroy Hook aufrufen, anstatt Daten zu ändern

Ich würde sagen, es wäre schön, es in der Dokumentation zu erwähnen - denn jetzt gibt es "Aufgerufen kurz bevor eine Vue-Instanz zerstört wird. Zu diesem Zeitpunkt ist die Instanz noch voll funktionsfähig."

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen