2017-01-03 3 views
0

ich auf Async Update Queue, die vue offiziellen doc lese, habe verwirrt auf:Kann jemand mehr über VueJS Async Update Queue erklären?

Immer wenn eine Datenänderung beobachtet wird, wird es eine Warteschlange öffnen und alle Datenänderungen Puffer, die

in der gleichen Ereignisschleife passieren

was bedeutet es durch die same event loop, gibt es mehrere Ereignisschleifen gleichzeitig? Es sagt auch, die Warteschlange wird geleert in the next event loop “tick”, was bedeutet tick hier bedeuten? Was, wenn es keine nächste Ereignisschleife oder die nächste Ereignisschleife gibt?

Antwort

0

Lassen Sie mich versuchen, diese Frage als Teil meines Verständnisses zu beantworten.

Was bedeutet es mit der gleichen Ereignisschleife, gibt es mehrere Ereignisschleifen gleichzeitig?

Statt jede Änderung in jedem vue Eigenschaft/Methode/Variable auf die Ansicht anwenden, vue speichert alle jene Änderungen queue und später jene Änderungen spülen. In diesem Prozess der pushing die Veränderungen in der Warteschlange, optimiert sie durch nicht bei jeder Änderung neu zu machen als here kommentiert wird:

/** 
* Push a watcher into the watcher queue. 
* Jobs with duplicate IDs will be skipped unless it's 
* pushed when the queue is being flushed. 
*/ 
export function queueWatcher (watcher: Watcher) { 
    ... 
    ... 

die Warteschlange wird in der nächsten Ereignisschleife „Tick“ gespült werden, was bedeutet Tick hier?

Intern Vue versucht nativer Promise.then und MutationObserver für die asynchrone Warteschlange und fällt zurück auf SetTimeout (fn, 0). Here können Sie sehen, erste Vorliebe für das ist native Promise gegeben. Danach MutationObserver wo native Promise is not available und im schlimmsten Fall fallback to setTimeout.

Verwandte Themen