Я видел, как jQuery много просил в описаниях вакансий. Я также видел это, когда добавлял скрипты для использования начальной загрузки в проекте. И я также видел немного синтаксиса jQuery.
Синтаксис JQuery:
$ (document).ready(function( ){ $(“#div2”).find(“*”).css({“color”:”red”, “border”:“5px solid red”}); });
Почему он продолжает появляться? Что оно делает? Когда его лучше всего использовать? Есть ли недостатки? Могу ли я обойтись без его использования? Как я могу узнать больше, если мне когда-нибудь понадобится его использовать?
Слоган на веб-сайте jQuery звучит так: Пиши меньше, делай больше. Как странно.
jQuery — это быстрая, небольшая и многофункциональная библиотека JavaScript. Он значительно упрощает такие вещи, как обход и манипулирование документами HTML, обработку событий, анимацию и Ajax, с помощью простого в использовании API, который работает во множестве браузеров. Благодаря сочетанию универсальности и расширяемости jQuery изменил способ написания JavaScript миллионами людей. — jQuery
Краткий обзор
Они показывают пару примеров обхода и манипулирования DOM, обработки событий и Ajax. Они кажутся мне в основном понятными.
Их пример обработки событий:
var hiddenBox = $( “#banner-message” ); $( “#button-container button” ).on( “click”, function( event ) { hiddenBox.show(); });
Дополнительная информация для контекста: Показать элемент #banner-message, который скрыт с помощью display:none в его CSS, при нажатии любой кнопки в #button-container.
Я собираюсь попытаться написать ванильную версию JavaScript вышеперечисленного, просто чтобы убедиться, что я все правильно понимаю.
function hiddenBox(“#banner-message”){ (“#button-container button”).addEventListener(‘click’, (e) => e.preventDefault(show(“#banner-message”)) }
Хм… 🤔 Я все еще не на 100% уверен, что мой «перевод» точен, но, похоже, это основная суть всего этого. Я не полностью уверен в этом jQuery. Он не казался значительно проще или легче в использовании, чем обычный JavaScript. Опять же, в версии jQuery, вероятно, происходит что-то еще, чего я до сих пор не понимаю.
Выучить больше
К счастью, ковыряясь в документации по API, они упоминают Центр обучения jQuery для новичков, таких как я. Здесь они расскажут об основах, распространенных проблемах и практических рекомендациях в 10 главах. Поскольку это библиотека JavaScript, они рекомендуют, чтобы вы хорошо разбирались в JavaScript, прежде чем приступать к работе с jQuery.
Когда использовать jQuery
Пока я просматривал начальный сегмент «Как работает jQuery» в Учебном центре jQuery, я не нашел особого интереса, так как я рассмотрел еще один пример функции события «щелчка» и добавления/удаления имени класса HTML.
Затем был раздел о спецэффектах, и мой интерес пробудился. Я еще не слишком много изучал спецэффекты с помощью ванильного JavaScript. Библиотека jQuery поставляется с некоторыми методами/функциями (я не уверен, как они технически называются).
В их примере ссылка медленно исчезает при нажатии. Не знаю, почему я хотел бы это сделать. Может, в «игровой» ситуации?
( “a” ).click(function( event ) { event.preventDefault(); $( this ).hide( “slow” ); });
Примечание: (a) относится к ‹a href="http://jquery.com/»›jQuery‹/a›
Кажется, jQuery позволяет вам воздействовать непосредственно на элемент подобно CSS. селекторы.
Еще одно примечание: «.hide» — это функция/метод с параметром, установленным на «медленно».
Опять же, я не знаю, насколько легко (или слегка сложно) реализовать такие эффекты в ванильном JavaScript. Однако я слышал о некоторых анимациях с помощью CSS. Не знаю, как сделать так, чтобы ссылка исчезла. Может быть, со свойством display? В любом случае это, вероятно, потребует намного больше строк кода, чем просто использование .hide() в jQuery. Может быть.
В jQuery или не в jQuery
На своем пути к программированию я слышал слухи о том, что нам следует начать отказываться от jQuery. Тем не менее, я продолжаю видеть, насколько это популярно в некоторых компаниях и по сей день в их объявлениях о вакансиях. Если бы консенсус заключался в том, что мы можем отказаться от jQuery, я бы, вероятно, даже не задумывался об этом. Тем не менее, здесь я пишу этот блог, пытаясь понять это.
Flaviocopes объясняет, как jQuery стал популярным в начале-середине 2000-х для создания слайд-шоу изображений и виджетов. В то время браузеры не были стандартизированы, а jQuery был удобен для пользователя и помог решить эту проблему с браузером.
Еще один вывод, который я сделал из этой статьи, заключается в том, что jQuery был очень полезен, но большая часть его функций была стандартизирована для современных браузеров, поэтому мы можем манипулировать виртуальным DOM. Они дают лучшие примеры сравнения способов работы jQuery и DOM, чем моя попытка перевести jQuery в ванильный JavaScript.
Они также подтвердили, что анимацию jQuery также можно выполнять с помощью CSS Transitions или CSS Animations.
По их мнению, jQuery «не следует больше использовать в новых проектах, предназначенных только для современных браузеров».
Ситуации, в которых jQuery следует (или можно) использовать:
- если проект полагается на это
- некоторые библиотеки зависят от jQuery (например, Bootstrap; но Bootstrap 5 предназначен для использования без jQuery *ах* )
- некоторые шаблоны и плагины требуют этого
- если по какой-то причине по-прежнему нужна поддержка старых браузеров
- полезно для анимации, если вам не хватает навыков CSS
Есть так много статей и форумов, обсуждающих достоинства JavaScript по сравнению с jQuery. Вот недавний отчет от Real Tough Candy, опубликованный в июле 2021 года с заголовком, который прямо указывает на суть: Умер ли jQuery в 2021 году?. Они провели опрос среди 155 разработчиков и сделали несколько наблюдений.
Одна интересная закономерность, которую они заметили, заключалась в снижении использования jQuery, когда разработчики начали использовать React (который довольно популярен и современен).
Другое наблюдение заключалось в том, что большинство опрошенных разработчиков не используют jQuery для новых проектов. Хотя иногда, если исходная версия приложения использовала jQuery, может быть проще перестроить новое приложение с некоторым количеством jQuery.
Один разработчик научился делать то же самое в ванильном JavaScript, одновременно изучая jQuery. Другой расширил это представление, заявив, что современный JavaScript может делать все то же, что и jQuery.
Вывод
Думаю, я прочитал достаточно, чтобы сделать собственные выводы. Поскольку я уже немного изучил React.js и могу больше сосредоточиться на современных приложениях, я, вероятно, не смогу заморачиваться с jQuery. Особенно теперь, когда Bootstrap больше не полагается на него.
Может быть, мне следует просто сосредоточиться на улучшении CSS для анимации и старого доброго ванильного JavaScript.
Поскольку все еще существует довольно много компаний и приложений, использующих jQuery, я думаю, что просто изучу синтаксис и методы на лету, если до этого дойдет. В противном случае я просто буду двигаться вперед.