Более 10 лет опыта в веб-разработки.
При компиляции jsx в js получаются функции. Одни функции вложены в другие, другие вложены в третьи. Если вызвать самую верхнюю функцию, то сначала получится VirtualDOM, а потом и просто DOM.
Пока все хорошо. Но теперь нам нужно поменять какие-то данные в приложении, и изменить наш DOM на их основе. И вот тут начинаются разные нюансы: Все ли изменения одинаково полезны? Какие правки будут вызвать перерендер, а какие нет? Как React выбирает что именно изменить? Какие изменения в VirtualDOM позовут за собой изменения DOM,а какие нет? Как организовать свои данные так, чтобы приложение работало максимально быстро?
Если при вводе данных в текстовое поле у вас начинает тормозить все приложение, чекбоксы выставляются по полсекунды, а анимации тормозят, то мой доклад вам пригодится.