Проблема
Управление DOM-элементами это сердце современных интерактивных веб-сайтов. К сожалению, оно так же и значительно медленнее, нежели большинство операций в JavaScript.
Причем эта медлительность усугубляется ещё и тем, что большинство JavaScript-фреймворков делают обновления в DOM намного чаще, чем им на самом деле требуется.
В качестве примера, скажем у нас есть список из десяти элементов. Вы отключаете первый элемент. Большинство JavaScript-фреймворков будут перестраивать весь список. А это в десять раз больше работы, чем требуется! Всего лишь один элемент изменился, но оставшиеся девять будут перестроены в таком же виде, как и были до этого.
Перестроить список — это не большая нагрузка для браузера, но современные веб-сайты могут использовать огромное количество DOM-объектов при манипуляциях. Неэффективное обновление превращается в серьезную проблему.
Для решения этой проблемы, люди из React продвигают и популяризируют нечто, называемое Виртуальный DOM (англ. virtual DOM). (далее…)