В чем разница между виртуальным и реальным DOM

«В чем разница между виртуальным и реальным DOM» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Виртуальный DOM (VDOM) - это легковесная копия реального DOM, хранящаяся в памяти. React и другие библиотеки используют его для оптимизации обновлений интерфейса.

Ключевые различия:

  1. Производительность: VDOM обновляется быстрее, так как не требует прямых манипуляций с браузером. Изменения сначала применяются к VDOM, затем сравниваются с предыдущим состоянием (diffing алгоритм), и только необходимые изменения переносятся в реальный DOM.

  2. Абстракция: VDOM - это JavaScript-объект, тогда как реальный DOM - это API браузера.

  3. Обновления: Прямые изменения реального DOM могут вызывать повторные рендеры и рефлоуы, тогда как VDOM минимизирует эти операции.

Пример:

// React создает VDOM
const element = <div>Hello</div>;

// После сравнения с предыдущим VDOM,
// React обновит только изменившиеся узлы в реальном DOM
ReactDOM.render(element, document.getElementById('root'));