Рамки все разные. Существуют фреймворки, которые не блокируют API-интерфейсы браузера и/или дерево DOM и/или ведут себя как операционные системы сами по себе. Когда вы начинаете работать с React/Angular/Vue, вы попадаете в «ловушку». Вы находитесь в капсуле, где вы не можете сделать шаг в сторону и должны соблюдать все правила фреймворка. Существует множество ужасных обходных путей, называемых «хуками», просто для того, чтобы сделать некоторые довольно простые вещи возможными в React. Некоторое время назад React использовал классы для «описания» компонентов. Такие классы никогда не создаются, из этих классов не создаются объекты, и они не существуют нигде в вашей программе. Как, по-вашему, начинающие программисты после такого опыта поймут реальную цель занятий? Эти фреймворки представляют собой песочницу для младших программистов. Кто-то спросил меня: «Что я должен изучить в первую очередь — React или Javascript?» Сам этот вопрос многое говорит об экосистеме, созданной React и его друзьями.

Действительно мощные фреймворки (и я их использую, без рекламы) не делают предположений о том, что вы можете и чего не можете делать вместе с этим фреймворком. Эти фреймворки обеспечивают чистый и прозрачный способ отката к «голому железу» (или DOM) или сделать некоторые вещи в естественном потоке управления, имея в то же время полный доступ к преимуществам фреймворка. Вы не должны «бороться» с фреймворком и тратить время на создание различных обходных путей только для того, чтобы синхронизироваться с фреймворком. В противном случае — лучше вообще отказаться от фреймворка и перейти на голый DOM API.

Я до сих пор горжусь своим проектом, созданным в 1999–2000 годах для системы бронирования паромов. Программировалось без всяких фреймворков, но было:
- 120 Килобайт кода
- SPA (одностраничное приложение)
- ajax-подобная связь с сервером (через IFRAME)
- объектно-ориентированный, без абстрактных объектов и классов
- быстро загружается при подключении к Интернету со скоростью 64 Кбит/с
- создан за полгода одним человеком

Если бы я сделал это сегодня с React или подобным фреймворком, то это было бы:
- 500 КБ кода
- 8 МБ размера приложения
- настоящий AJAX (это преимущество), но с Redux — медленнее время отклика
- создано за 1 год двумя людьми
- загружено в 5 раз медленнее, чем предыдущее, на соединениях со скоростью 100 Мбит/с.

Лично я нашел хорошее решение для сегодняшних проектов, но все же меня вдохновляют безфреймворковые решения прошлых дней. Хлопаем автору.