React, Vue и пр. хороши использованием теневого DOM: в котором просчитывают весь интерфейс, и в настоящий тормозной DOM вырисовывают только то, что изменилось.
Таким образом, их здорово использовать, чтобы интерфейс получался быстро реагирующим на действия пользователя.
когда в нем часто перерисовывается DOM дерево
не совсем: когда действительно прям весь DOM должен меняться часто-постоянно, фишки теневого DOM мало улучшат ситуацию.