во во фреймвокр решает в первую очередь задачи архитектуры - как писать логику и как ее организовывать
На мой взгляд фреймворки в первую очередь решают проблему тормозов нативного dom-а (в случае реакта это дифф через virtual-dom или более умным способом в случае ангуляра или svelte или $mol)
А вот если бы создание/удаление dom-а всего приложения на каждое изменения было бы таким же быстрым как и создание/удаление простых js-объектов то эти фреймворки-шаблонизаторы не были бы так популярны так как ту же задачу декларативного маппинга состояния на шаблоны можно было бы очень просто решить и без фреймворков