Почему виртуальный DOM

Манипуляции с DOM - это ключ к представлению интерактивных веб-браузеров, которые работают слишком медленно по той причине, что большинство фреймворков Javascript обновляют DOM больше, чем нужно. Чтобы подробно объяснить, если дерево DOM состоит из шести узлов и изменения вносятся в один узел, все дерево перестраивается, при этом остальные пять узлов восстанавливаются точно так, как они были раньше.

Добавление и удаление узлов DOM занимает не намного больше времени, чем установка свойства для объекта Javascript. Это простая операция. Тогда в чем причина медлительности, макета, который браузеры должны создавать всякий раз, когда изменяется DOM, браузеру необходимо пересчитывать CSS, выполнять макет и перерисовывать веб-страницу. Но когда дело доходит до современных веб-сайтов, которые используют огромное количество манипуляций с DOM, неэффективное обновление становится серьезной проблемой.

Чтобы решить эту проблему, React популяризировал виртуальную модель DOM.

Виртуальный дом

Виртуальный DOM - это виртуальное представление DOM. всякий раз, когда состояние нашего приложения изменяется, обновляется виртуальная DOM вместо реальной DOM. В React методы render () возвращают описание DOM, а React diff это описание с представлением в памяти для вычисления наиболее быстрого способа обновления браузера.

А также React реализует полностью синтетическую систему событий, так что все объекты событий гарантированно соответствуют спецификации W3C, несмотря на причуды браузера, последовательно и эффективно во всех браузерах.

Насколько виртуальная модель DOM работает быстро?

В React каждый раздел пользовательского интерфейса представлен компонентом, и каждый компонент определяется состоянием. всякий раз, когда состояние изменяется, наблюдатель React запускает изменение состояния и обновляет дерево Virtual DOM. После обновления Virtual DOM React сравнивает новую виртуальную DOM с версией до обновления и выясняет, какие именно виртуальные объекты DOM были изменены . Этот процесс называется «diffing ».

Как только React узнает, какие виртуальные объекты DOM были изменены, React обновляет только эти объекты в реальной DOM. Это значительно повышает производительность по сравнению с непосредственным манипулированием реальной DOM. Репутация React как производителя высокой производительности обусловлена ​​этим нововведением.

Как это помогает

Виртуальная модель DOM оптимизирует использование памяти по сравнению с другими системами, поскольку не хранит в памяти наблюдаемые объекты. Таким образом, каждое изменение модели данных может вызвать полное обновление виртуального пользовательского интерфейса.

И это обеспечивает более эффективный способ обновления представления в веб-приложении. Каждый раз, когда в приложении React изменяются базовые данные, создается новое виртуальное представление DOM пользовательского интерфейса. Визуализация виртуальной модели DOM всегда выполняется быстрее, чем визуализация пользовательского интерфейса в реальной модели DOM браузера.

Он также предоставляет простой способ обновления браузера. Это обеспечивает высвобождение значительного объема ресурсов памяти и простую оптимизацию пользовательского интерфейса, что улучшает как производительность, так и продуктивность.