
Was ist das Virtual DOM? Wie React und Vue die Seite aktualisieren
- vuetelemetry
- Leitfäden
- 6 Min. Lesezeit
Das Virtual DOM ist eine leichtgewichtige Kopie der Seite im Speicher, die Frameworks vergleichen (Diffing), um das echte DOM effizient zu aktualisieren. Was es ist, wie das Diffing funktioniert und warum es das deklarative Modell von React und Vue trägt.
Wer React oder Vue lernt, stößt sehr früh auf den Begriff „Virtual DOM“, und er klingt oft wie Magie. Das ist er nicht – es ist eine einfache, praktische Idee, die erklärt, wie moderne Frontend-Frameworks eine Seite mit deinen Daten synchron halten, ohne dass du die Seite selbst von Hand anfassen musst.
Das Problem, das es löst

Um das gelöste Problem zu verstehen, ruf dir in Erinnerung, was das echte DOM ist: der lebendige Baum aus Elementen, den der Browser rendert. Es direkt zu aktualisieren – Knoten erzeugen, Attribute setzen, Kinder umsortieren – ist sowohl langsam, wenn man es oft tut, als auch fehleranfällig, wenn man es von Hand macht. Eine komplexe Oberfläche korrekt zu halten, während sich die Daten ändern, mit manuellen DOM-Änderungen überall, ist genau die Stelle, an der Bugs entstehen.
Was das Virtual DOM ist
Das Virtual DOM ist die Antwort des Frameworks. Es ist eine leichtgewichtige Kopie der Oberfläche, die als einfache JavaScript-Objekte im Speicher gehalten wird – ein Baum, der beschreibt, wie die Seite gerade jetzt aussehen soll. Es ist günstig zu erzeugen und wieder zu verwerfen, weil nichts daran den Browser berührt, bis das Framework es entscheidet.
- Eine leichtgewichtige Kopie der Oberfläche im Speicher, als einfache Objekte
- Bei jeder State-Änderung wird ein neuer Baum gebaut und verglichen (Reconciliation)
- Nur die minimalen Änderungen am echten DOM werden angewendet
- Ermöglicht das deklarative Modell „Oberfläche = Funktion des States“
- React und Vue nutzen es; Svelte und Solid verzichten bewusst darauf
Wie das Diffing funktioniert
So sieht der Zyklus aus. Wenn sich dein State ändert, baut das Framework einen brandneuen Virtual-DOM-Baum, der die gewünschte Oberfläche darstellt. Dann vergleicht es diesen neuen Baum mit dem vorherigen – ein Schritt namens Diffing oder Reconciliation – und ermittelt die kleinste Menge an Änderungen am echten DOM, die nötig ist, um vom alten Bild zum neuen zu gelangen.
Dieser letzte Teil ist der entscheidende Punkt. Statt dass du herausfindest, „welche Knoten füge ich hinzu, entferne oder aktualisiere ich?“, berechnet das Framework den minimalen Patch und wendet nur diesen auf das echte DOM an. Teure Browser-Operationen werden gebündelt und auf ein Minimum reduziert, sodass sich die Seite effizient aktualisiert, selbst wenn sich auf einmal viel State geändert hat.
Der echte Vorteil: ein deklaratives Modell
Aber Geschwindigkeit ist nur die Hälfte des Nutzens und wohl nicht die wichtigste. Der eigentliche Gewinn ist das Programmiermodell, das das Virtual DOM praktikabel macht: Du schreibst deine Oberfläche als Funktion des States – beschreibst, wie die Seite für die aktuellen Daten aussehen soll – und überlässt es dem Framework, die Differenz abzugleichen. Dieser deklarative Stil ersetzt den fragilen, imperativen Ansatz, „das DOM Schritt für Schritt zu mutieren“.
React und Vue
Sowohl React als auch Vue bauen auf dieser Idee auf, jeweils mit eigenen Implementierungen und Optimierungen. Wenn du eine Komponente schreibst, die anhand ihrer Daten Markup zurückgibt, beschreibst du in Wirklichkeit einen Virtual-DOM-Baum; das Framework übernimmt im Hintergrund das Diffing und die tatsächlichen DOM-Aktualisierungen. Deshalb rufst du in beiden Frameworks nur selten selbst DOM-Methoden auf.
Die ehrlichen Grenzen
Man sollte ehrlich über die Grenzen sein. Ein Virtual DOM ist nicht automatisch der schnellstmögliche Ansatz – das Diffing selbst kostet etwas. Neuere Frameworks wie Svelte und Solid verzichten auf das Virtual DOM und kompilieren Komponenten zu fein granularen Aktualisierungen, die das DOM direkt anfassen. Das Virtual DOM ist also eine gute Strategie, nicht die einzige – aber für React und Vue ist es zentral für ihre Funktionsweise.
Das Fazit
Kurz gesagt: Das Virtual DOM ist ein Modell deiner Oberfläche im Speicher, das das Framework mit der vorherigen Version vergleicht, um das echte DOM mit dem geringsten Aufwand zu aktualisieren. Sein bleibender Wert liegt nicht nur in der Performance, sondern im deklarativen Modell, das es ermöglicht: Du beschreibst das Ergebnis, und das Framework findet die Schritte.
FAQ
Was ist das Virtual DOM, einfach erklärt?
Es ist eine leichtgewichtige Kopie der Seite, die als einfache JavaScript-Objekte im Speicher gehalten wird. Wenn sich deine Daten ändern, baut das Framework eine neue Kopie, vergleicht sie mit der alten und aktualisiert nur die Teile der echten Seite, die sich wirklich geändert haben – du musst das DOM also nie von Hand bearbeiten.
Warum ist das Virtual DOM schneller?
Direkte DOM-Operationen sind teuer, und sie naiv auszuführen (alles neu zu rendern) ist Verschwendung. Das Virtual DOM lässt das Framework die minimale Menge an Änderungen berechnen und bündeln, sodass nur das angefasst wird, was sich wirklich geändert hat. Der größere Vorteil ist jedoch das einfachere, deklarative Programmiermodell, das es ermöglicht.
Was ist der Unterschied zwischen Virtual DOM und echtem DOM?
Das echte DOM ist der lebendige Baum aus Elementen, den der Browser rendert und anzeigt. Das Virtual DOM ist eine Repräsentation davon im Speicher, in JavaScript – günstig zu erzeugen und zu vergleichen. Das Framework vergleicht zwei Virtual-DOM-Bäume und wendet die resultierenden Änderungen dann auf das echte DOM an.
Nutzen alle Frameworks ein Virtual DOM?
Nein. React und Vue sind darum herum aufgebaut, aber das ist nicht der einzige Ansatz. Svelte und Solid verzichten vollständig auf das Virtual DOM und kompilieren Komponenten zu fein granularen Aktualisierungen, die das DOM direkt ändern. Das Virtual DOM ist eine wirksame Strategie unter mehreren.



Man sollte ehrlich über die Grenzen sein. Ein Virtual DOM ist nicht automatisch der schnellstmögliche Ansatz – das Diffing selbst kostet etwas. Neuere Frameworks wie Svelte und Solid verzichten auf das Virtual DOM und kompilieren Komponenten zu fein granularen Aktualisierungen, die das DOM direkt anfassen. Das Virtual DOM ist also eine gute Strategie, nicht die einzige – aber für React und Vue ist es zentral für ihre Funktionsweise.