Как использовать React компоненты с плагинами и модулями jQuery?
Надоела простыня и непонятность кода JS при разработке сайтов, по этой причине решил использовать модульный подход в разработке. Так же мною был выбран React с React Habitat для возможности включать react компоненты на обычной веб странице которая рендерится с помощью php.
В процессе возник следующий вопрос:
Так как страница не представлена одним react компонентом а лишь местами включает их, то существует множество всяких элементов отрендереных с помощью php, которым необходимо некое взаимодействие с пользователем (скрыть/показать скрытый текст, заиспользовать какой-либо jquery плагин к примеру для перемотки страницы и другие). Так как этот DOM сгенерин не с помощью react, то для взаимодействия с ним я так понимаю я могу использовать jQuery?
Компоненты для React описаны в отдельных файлах которые в последствии собираются в один. Как в этом случае быть с jQuery? Писать commonJS модули? А если это простое скрыть/показать текст? тоже модуль отдельный? В этом моменте я немного плаваю.
Прошу подсказать как быть с выше писаной ситуацией.
Ну посмотрите как сделано тут https://gist.github.com/avakhov/7b9d2b1a354e59dbfa63. А вообще что мешает для отрендеренных php блоков подключить отдельный файл со скриптами? Это было бы логично. React компоненты отдельно, jquery отдельно.
ijakparov: Ну вот смотрите, например сервис invision - там jquery + angular + react. Я не знаю зачем они так намутили, но сервис работает нормально, и даже отлично справляется со своей задачей.
Реакт это же библиотека, как и jquery (в том плане, что это библиотека =) ).
Если Вы в код пишите нормально, и не смешиваете 2 подхода, то мне кажется все будет очень прозрачно. Реакт компоненты отдельно, jquery отдельно. Где-то даже в доках реакта я находил строчки, что это как бы фишка реакта, что его можно внедрять в рабочие проекты постепенно. Тоесть шаг за шагом переписывать проект. Причем не закрывая проект на реконструкцию. Поэтому моё личное мнение, что такой подход возможен и очень даже имеет право на жизнь.