Я изучаю ReactJS, я знаю, что реакция заключается в том, чтобы объявить, как что-то должно отображаться, предоставить ему некоторые данные и poof, когда данные изменяются, он отображает эти изменения. Но если я хочу манипулировать DOM, например, изменить цвет, создать аккордеон, сделать анимацию, добавить и удалить класс и т. д. React может это сделать? Могу ли я без проблем перенести свои проекты jQuery в Reactjs?
Короткий ответ: да. Длинный ответ - это сложно. React может сосуществовать с другими библиотеками. Но прямое манипулирование DOM не является хорошей практикой в React. Итак, по нажатию кнопки вы обработаете событие и измените состояние. Затем реагируйте на повторную визуализацию и в зависимости от состояния вы добавляете className.
Что сработало для меня, так это то, что забудьте все, что вы знаете о jQuery, и начните с нулевого знания и посмотрите, как реагирует реакция, которая ожидает от вас работы. Как только вы получите четкое представление, вы можете начать сравнивать и противопоставлять шаблоны/практики jquery.
Да, вы можете, но для простых решений вы можете придерживаться jQuery.
jQuery сейчас отмирает по определенной причине — многого можно добиться с помощью чистого JavaScript. Если вас интересуют интерактивные компоненты и тому подобное, ознакомьтесь с Material UI. MUI имеет МНОЖЕСТВО вариантов настройки.
Это не совсем подходящий вопрос для этого сайта, так как нет абсолютного ответа, а есть только мнения. Но раз вы спросили, мой ответ будет утвердительным. Одной из многих прелестей Javascript является его хаотичный характер, ни один фреймворк/библиотека не может полностью доминировать в Интернете, вы все равно можете написать полнофункциональное приложение, используя нативный js. Так может ли одна вещь заменить другую и сделать все, что могут другие? Конечно, но все зависит только от личных предпочтений и производительности. Вам нравится виртуальный дом? Реагировать. Вам нравится манипулировать домом напрямую? jQuery.
Ммм, я понял, значит, смешивать обе библиотеки в одном проекте - плохая практика?
Та же страница — это нормально, но в компоненте реагирования это не рекомендуется и может привести к тонким проблемам.
Есть много подходов к этой задаче, полный список здесь, в официальной документации. Либо используйте React в качестве оболочки поверх вашего приложения jQuery, либо переведите свое приложение jQuery в приложение React. Из официальных документов
React не знает об изменениях, внесенных в DOM вне React. Он определяет обновления на основе собственного внутреннего представления, и если те же узлы DOM манипулируются другой библиотекой, React запутывается и не имеет возможности восстановиться.
Это не означает, что невозможно или даже обязательно сложно сочетать React с другими способами воздействия на DOM, вы просто должны помнить о том, что делает каждый из них.
Самый простой способ избежать конфликтов — запретить обновление компонента React. Вы можете сделать это, визуализируя элементы, которые React не имеет смысла обновлять, например пустой файл .
Вот средняя статья, которая может вам помочь.
Как моя команда преобразовала-наш-веб-сайт с jquery на реагирование за небольшие шаги
Это потребует некоторых навыков и опыта, но да, по большей части