Это, как правило, не так, как написаны приложения JavaScript.Весь смысл фреймворка в том, чтобы иметь каркас, вокруг которого вы строите свой код.В этом принципиальное отличие библиотеки от фреймворка.Библиотеки (если они хорошо спроектированы) являются взаимозаменяемыми, и приложения, которые их используют, могут абстрагироваться от этой зависимости.
Теоретически вы могли бы написать новый каркас, который бы абстрагировал несколько других базовых каркасов, но многие из них придерживаются совершенно разных философий о том, как следует писать приложения.Некоторые в большей степени ориентированы на DOM, некоторые в большей степени ориентированы на события, а некоторые - на модели.Создание чего-то, что инкапсулировало бы что-то вроде JQuery, Angular и React, было бы практически невозможно (и, конечно, больше, чем любая из этих платформ в отдельности).
Наконец, часть ценности использования платформы состоит в том, что вы можете игнорироватьвсе биты, которые они обрабатывают для вас.Когда вы пытаетесь бороться с этими структурами и создавать что-то независимое, они, как правило, будут сражаться с вами и сделают вашу жизнь несчастной.Вы будете тратить больше времени на написание оболочек и хакерских копий, чем написание приложений.
Сделайте себе одолжение, выберите фреймворк, создайте свое приложение и выбросьте его, когда решите переключиться.,Это будет намного дешевле, чем пытаться абстрагироваться от этих различных систем (к тому же вы не можете предсказать будущее, поэтому в любом случае вы в конечном итоге выберете неправильную абстракцию).