Ein virtual DOM („virtuelles Dokumenten-Objekt-Modell“) ist in Webanwendungs-Frameworks eine leichtgewichtige JavaScript-Darstellung des Document Object Model (DOM), die in deklarativen Web-Frameworks wie React, Vue.js, und Elm verwendet wird.[1] Die Aktualisierung des virtuellen DOM ist vergleichsweise schneller als die Aktualisierung des tatsächlichen DOM via JavaScript. Daher kann das Framework unnötige Änderungen am virtuellen DOM relativ kostengünstig vornehmen. Das Framework findet dann die Unterschiede zwischen dem vorherigen virtuellen DOM und dem aktuellen und nimmt nur die notwendigen Änderungen am tatsächlichen DOM vor.[2][3]
Svelte verfügt nicht über ein virtuelles DOM, da sein Entwickler Rich Harris das virtuelle DOM als „reinen Overhead“ bezeichnet.[4]
Ähnliche Techniken sind Glimmer in Ember.js[5] und das inkrementelle DOM in Angular[6].