DOM (Document Object Model) — это программный интерфейс для HTML, XML и SVG документов. Он предоставляет структурное представление документа в виде дерева узлов и определяет, каким образом программы могут получать доступ к его содержимому, структуре и стилям, а также изменять их.
Virtual DOM — это концепция, являющаяся программным представлением DOM в памяти. Он используется в библиотеках и фреймворках, таких как React, для оптимизации обновлений UI.
Сравнение:
| Признак | DOM | Virtual DOM |
|---|---|---|
| Тип | Интерфейс API для документа | Представление DOM в памяти |
| Изменение | Прямое манипулирование элементами | Создание нового дерева, сравнение с предыдущим |
| Производительность | Относительно медленное при частых изменениях | Более быстрое при частых пакетных обновлениях |
| Сложность | Зависит от прямого доступа к элементам | Абстрагирует сложность обновления DOM |
| Обновление экрана | Каждое изменение ререндерит часть UI | Одно пакетное обновление после diffing |
Процесс работы Virtual DOM в React:
Пример концепции Virtual DOM (упрощенно):
javascript