Я буду использовать jQuery в качестве примера, но то, что я здесь говорю, может относиться к большинству фреймворков JavaScript.
Многие фреймворки (особенно jQuery) слишком монолитны и недостаточно модульны.
Хотя зависимость от хорошо протестированного стороннего программного обеспечения часто более чем оправдана, «фреймворки», как правило, предоставляют вам гораздо больше функциональных возможностей, чем вам нужно в данный момент.
Во многих проектах мне очень нравится удобство, которое дает мне jQuery для выбора наборов элементов (например, с помощью $ (". Classname")). Но, если я не использую сколько-нибудь значительное количество AJAX, мне не нужны утилиты AJAX, предоставляемые jQuery.
Программное обеспечение должно делать одну вещь и делать это хорошо, и программное обеспечение, написанное на JavaScript, не является исключением. Большинство фреймворков, на которые вы ссылаетесь, пытаются сделать все , что приводит к ненужной сложности.
Одно место, которое может вас укусить, это когда вы рассматриваете возможность перехода на следующую версию фреймворка. Это включает в себя обход журналов изменений jQuery для поиска несовместимых назад изменений и поиск в вашем проекте областей, где используется этот код. Это может быть настоящим кошмаром, особенно если у вас не обязательно есть полный список того, какие функции jQuery вы используете, а какие нет.
Кроме того, jQuery (и другие фреймворки), как правило, заставляют разработчиков запускаться в зависимости от новых функций jQuery, даже не задумываясь об этом, затрудняя определение того, какие функции jQuery использует ваш проект, а какие нет.
Если вы используете утилиту, которая выполняет одну вещь, то вы точно знаете, какие функции этой утилиты вы используете. Здесь только один. (Если вы вообще не используете эту утилиту, это легко определить. Такое определение будет означать, что вы можете безопасно удалить ее из своего проекта.)
Я за использование хорошо проверенного стороннего кода. Но если он пытается сделать слишком много (то есть, если это скорее фреймворк, чем утилита), вам, вероятно, следует искать альтернативу. Если он пытается сделать слишком много (как jQuery пытается сделать слишком много), то у него есть серьезные фундаментальные недостатки в дизайне, которые, вероятно, вернутся, чтобы укусить вас.