Что такое интерфейсный фреймворк JS, который не ненавидит jQuery?

Широко известно, что при использовании Angular или React вам не следует использовать jQuery (или, по крайней мере, следует использовать его осторожно, только если вы знаете, что делаете), потому что jQuery — это инструментарий DOM, а React/Angular имеют свои собственные способ работы с DOM под капотом, а они будут мешать и глючить.

Однако для меня jQuery — это больше, чем просто манипулирование DOM. Существует огромная экосистема библиотек, таблиц данных, уведомлений и всплывающих окон, карусельных плагинов, средств выбора календаря, поэтому для меня реальная ценность jQuery заключается в возможности использовать все эти готовые библиотеки, а не просто манипулировать DOM.

Чтобы иметь возможность использовать библиотеки на основе jQuery с Angular или React, обычно требуется библиотека порта/обертки, поэтому у нас есть такие вещи, как ng-bootstrapили Reactstrapвозможность использовать Bootstrap с Angular и React соответственно, но обычно эти обертки либо глючат , новое программное обеспечение (= прослушивается), незрелое или не имеет некоторых функций (= не оборачивайте все).

Я пытаюсь найти фреймворк, в который можно естественным образом включить jQuery (а также Bootstrap, поскольку файл JS основан на jQuery) и его библиотеки, не мешая естественному потоку фреймворка. Я почти уверен, что подобная структура будет менее «волшебной» или менее «автоматической» (например, автоматический рендеринг и обновление DOM React), но мне все равно, придется ли мне рендерить шаблоны вручную.

Я слышал, что Backbone может довольно хорошо работать с jQuery, но я особо не пробовал Backbone, поэтому не знаю. Если вы согласны с этим, можете ли вы также объяснить, почему Backbone хорошо работает с jQuery и имеет лучшую интеграцию с ним, чем Angular или React?

Если вы имеете в виду фреймворк, попробуйте также включить примеры (объясненные в устной форме или с помощью кода, я не возражаю) успешных случаев, когда вы использовали фреймворк плюс библиотеку jQuery.

Для чего вы хотите использовать фреймворк? Может есть отдельные библиотеки для этих функций? Потому что, если вы продолжите делать свои собственные манипуляции с DOM, вы упустите самые сильные стороны фреймворка.
Прочитайте мой вопрос. Я сказал, что мне не нравится использовать библиотеки-оболочки, потому что они обычно не так хороши, как исходная библиотека без обертки. Кроме того, если фреймворк плохо работает с манипуляциями с DOM, я упускаю сильные стороны jQuery и его библиотек (как я уже писал в своем вопросе).
Express — это своего рода фреймворк, но не совсем такой, как React или Angular.

Ответы (1)

Я бы в значительной степени использовал Vue для чего угодно. Пример с их собственного сайта:

В этом примере мы интегрируем сторонний плагин jQuery (select2), помещая его в пользовательский компонент.

В любой среде вам придется обернуть любую активность jQuery в пользовательские компоненты, директивы или что-то еще.

Прекрасное решение, единственная проблема в том, что мне, вероятно, придется самому писать код, подверженный ошибкам, и, вероятно, это будет хуже, чем библиотека-оболочка, которую кто-то написал. Но все же приятно рассмотреть для некоторых случаев. Вариант использования, на который я ориентируюсь, — это использование Datatables внутри фреймворка, который представляет собой очень сложную библиотеку.