Вот представьте что вам нужен банан. А выбирая фреймворк, вы получаете гориллу в руках которой банан и которая вам его еще не отдает, а потом оказывается что вы слишком засмотрелись на горилу и увидели вокруг джунгли. - Это то что вас ждет если начнете сразу использовать фреймворки.
Без хорошего знания чистого Javascript, хороших практик программирования, дизайн паттернов, простейших структур данных (Хотя бы стек и очередь, максимум деревья и графы). Так-же в основе языка еще и мат.база, взять функциональное программирование на JS (Каррирование например + сложное применение map, reduce вместе). Добавим сюда еще принципы проектирования и опп, DRY, TDD. Что получиться в итоге? Вам нужен PubSub, а вы берете фреймворк его реализующий с миллионом методов - которые вы не будете использовать, но будете думать а куда бы еще прикрутить ее, в следствии чего в пьяном бреду можно нагородить огород библиотек и не узнать как написать свою :)
Учите технологию программирования, алгоритмы, структуры данных, дизайн паттерны, концепцию типов данных, функциональный подход, ооп, императивный. А потом уже конкретный язык с которым нравиться работать без библиотек.
В основе того-же Backbone (Лежит Model View Controller) Иерархия классов, евенты, pubsub. Ember (Two-way databinding, services). AngularJS(NO DOM Manipulation, Services, DI, TwoWay Databind). React (Shadow Dom, JSX, ES6, Views).
Надеюсь помог.