dr.Brain

doctor Brain

мир глазами веб-разработчика

Тебе нужен jQuery?

Библиотека jQuery великолепна. Многие годы ее использование облегчает написание кода. Тем не менее, в современной веб-разработке роль jQuery не столь значительна, как нам кажется.

dr.Brain

время чтения 3 мин.

Photo by Todd Quackenbush on Unsplash

Мир веб-разработки быстро и постоянно развивается и обновляется. Возможно, сейчас настало именно то время, когда библиотека jQuery должна выйти из игры. Современные браузеры имеют встроенные BOM и DOM API, которые уже являются отраслевыми стандартами и могут использоваться при создании веб-приложений.

Что такое jQuery?

JQuery - JavaScript библиотека, которая облегчает манипулирование DOM и создание обработок. Библиотека была представлена в 2006 году, когда DOM API еще не был развит. Появление jQuery коренным образом изменило мир веб-разработки, так как эта библиотека легка в использовании и проста в понимании.

С тех пор многие люди думают, что написание JavaScript кода без jQuery - настоящая пытка. По этой причине JavaScript стали отождествлять с jQuery. Но время идет, и в настоящее время неверно считать их синонимами. Мы должны принять тот факт, что JavaScript - язык, а jQuery - библиотека. Несмотря на новые достижения в DOM и DOM API, механизмы манипулирования DOM и создания обработок с помощью jQuery не изменились.


В то же время, появление и развитие новых JavaScript библиотек (React, Vue) и фреймворков (Angular) изменили подход к манипулированию DOM, сделав его анти-паттерном, что в свою очередь привело к снижению популярности jQuery.


Сравнение jQuery и JavaScript

Нижен приведены фрагменты кода, демонстрирующие различия между Jquery и JavaScript.

Поиск элемента по ID

С помощью jQuery:

const item = $('#item');

С помощью JavaScript:

const item = document.getElementById("item");

Добавление класса

С помощью jQuery:

$(el).addClass(className);

С помощью JavaScript:

el.classList.add(className);

querySelector

С помощью jQuery:

const items = $('.list .item');
const lastItem = $('.item:last-item');

С помощью JavaScript:

const items = document.querySelectorAll('.list .item');
const lastItem = document.querySelector('.item:last-item');

Позиционирование

С помощью jQuery:

var offset = el.offset();

{
  top: offset.top - document.body.scrollTop,
  left: offset.left - document.body.scrollLeft
}

С помощью JavaScript:

el.getBoundingClientRect()

Еще больше примеров можно найти здесь.

Приведенные примеры, демонстрируют, что задачи можно решать с помощью JavaScript, не прибегая к jQuery.

Внимание

Селекторы JavaScript (VanillaJS) всегда быстрее, чем у jQuery

jQuery все еще можно использовать

jQuery незаменим для браузеров, использующих различные стандарты. В настоящее время проблема введения общих стандартов использования различных API для браузеров эффективно решается.

Можно сказать, что исключать jQuery из веб-разработки нецелесообразно, так же, как и нет необходимости включать эту библиотеку в каждый проект, только потому, что это jQuery.

jQuery эффективен при написании сложных фрагментов кода, часто приводящих к возникновению ошибок при использовании только JavaScript.

Например:

с помощью jQuery:

$(document).ready(function(){

});
}

с помощью JavaScript:

function ready(fn) {
  if (document.readyState != 'loading'){
    fn();
  } else {
    document.addEventListener('DOMContentLoaded', fn);
  }
}

Фрагменты, приведенные выше, ведут к одному и тому же результату. Но понимание необходимости использования свойства readyState часто бывает сложным для начинающих разработчиков.

Свойство readyState возвращает статус текущего документа

Другой пример:

с помощью jQuery:

$.type(obj);

с помощью JavaScript:

Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase();

Заключение

jQuery - великолепная библиотека и этот факт не вызывает сомнений. Тем не менее, будет неверным утверждать, что невозможно писать код на JavaScript, не зная jQuery.

jQuery полезен при написании сложных и больших фрагментов кода, так как такой подход позволит избежать большого количества ошибок.

Нет необходимости включать библиотеку jQuery во все проекты.

JavaScript без jQuery в любом случае демонстрирует лучшую производительность.

Каждый раз необходимо принимать индивидуальное решение: включать или не включать jQuery в текущий проект.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.