jQuery 4.0 впервые за 10 лет: модульная архитектура и удаление дублирующего кода
-
jQuery 4.0 наконец вышел - первый крупный релиз за почти десять лет. Библиотека обновилась под современные реалии: ES-модули вместо старых AMD, поддержка Trusted Types для безопасности и удаление устаревших API. Это поможет сократить размер кода и упростить миграцию на новые инструменты.
Разработчики убрали дублирующий функционал, который давно заменен нативными возможностями браузеров. Теперь jQuery легче интегрируется в Vite или webpack, а slim-версия стала еще компактнее. Если вы работаете с legacy-проектами, это шанс обновиться без больших переделок.
Модульная архитектура: переход на ES-модули
jQuery 4.0 полностью перешел на ECMAScript Modules (ESM). Раньше исходный код использовал AMD-модули, что требовало RequireJS или других хаков для импорта. Теперь библиотека поставляется как нативный модуль, совместимый с современными сборщиками вроде Rollup, Vite и webpack. Это упрощает разработку: импорт jQuery стал прямым, без лишних настроек.
Переход на ESM позволил очистить код от legacy-зависимостей. Тесты проходят отдельно для модульной версии, что гарантирует стабильность. В результате библиотека лучше вписывается в современные workflows, особенно в проектах на TypeScript или с tree-shaking. Но есть нюанс: если проект на старом RequireJS, придется мигрировать.
Вот ключевые изменения в модульной архитектуре:
- Нативный импорт:
import $ from 'jquery';работает из коробки в поддерживаемых браузерах. - Совместимость со сборщиками: Полная поддержка Vite, webpack 5+, esbuild без плагинов.
- Tree-shaking: Удаляются неиспользуемые части кода при сборке.
- Меньший размер: После миграции на Rollup бандл стал легче на несколько КБ.
Сравнение модульных систем AMD (jQuery 3.x) RequireJS обязателен, хаки для ESM ESM (jQuery 4.0) Нативная поддержка, tree-shaking Совместимость Только современные браузеры Удаление дублирующего функционала
В jQuery 4.0 убрали множество устаревших API, которые давно заменены нативными методами JavaScript. Например,
jQuery.isArray,jQuery.trimиjQuery.parseJSONбольше не нужны - за них отвечаютArray.isArray,String.prototype.trimиJSON.parse. Это сделало библиотеку чище и легче: полная версия после gzip - 27.5 КБ, slim - всего 19.5 КБ.Удаление коснулось и внутренних методов, вроде
Array.prototype.push,sort,spliceна объектах jQuery. Разработчики убрали недокументированные параметры и сложное поведение для кросс-браузерности. Большинство пользователей перейдут безболезненно, но для миграции есть специальный плагин. Это шаг к минимализму: jQuery фокусируется на DOM-манипуляциях, а не на полифиллах.Убранные API и их альтернативы:
jQuery.isArray()→Array.isArray()jQuery.trim()→str.trim()jQuery.parseJSON()→JSON.parse()$.DeferredиCallbacks→ нативные Promises- Внутренние Array методы → стандартные прототипы
Удаленные API Нативная альтернатива Примечание isArrayArray.isArrayБыстрее и короче trimstr.trim()ECMA-5+ DeferredsPromiseВ slim-версии убрано Улучшения безопасности и браузерная поддержка
jQuery 4.0 добавил поддержку Trusted Types - стандарта против XSS-атак. Теперь методы вроде
.html()принимают объектыTrustedHTML, что совместимо с Content Security Policy (CSP). Это защищает от инъекций черезinnerHTMLилиeval, особенно при работе с пользовательским контентом.Сократили поддержку старых браузеров: нет IE 10 и ниже, старых iOS/Firefox/Android. IE 11 пока остается, но уйдет в jQuery 5. Порядок событий фокуса (focus/blur) приведен к W3C: теперь blur → focusout → focus → focusin, без jQuery-хаками. Slim-сборка без AJAX, анимаций и Deferreds идеальна для простых DOM-задач.
Ключевые улучшения:
- Trusted Types:
$(trustedHTML)вместо строк. - Новый порядок фокуса: Соответствует спецификации.
- Дроп IE <11: Меньше полифиллов.
- Slim 19.5kB: Без Promises-дубликатов.
Что под капотом: slim-сборка и миграция
Slim-версия jQuery 4.0 стала ультракомпактной - убрали Deferreds/Callbacks, полагаясь на Promises. Это актуально для проектов без AJAX/анимаций. Полная версия сохраняет все, но рекомендуют тестировать на breaking changes. Для legacy-кода есть миграционный плагин от команды.
Размер сократился за счет удаления дублирующего кода. Библиотека остается на 70% топ-сайтов мира, несмотря на React/Vue. Обновление снижает техдолг в enterprise и CMS.
Версия Размер (gzip) Что убрано Полная 27.5 КБ Устаревшие API Slim 19.5 КБ AJAX, effects, Deferreds Взгляд в будущее jQuery
jQuery 4.0 модернизировал библиотеку, но не решил все. Остались вопросы по IE 11 и полным breaking changes в 5.0. Стоит протестировать slim в новых проектах и мигрировать legacy. Библиотека жива и адаптируется под ESM-эру.
Дальше ждем полифиллов для Promises в IE и большего фокуса на безопасность. Это релиз для тех, кто ценит стабильность без лишнего веса.
- Нативный импорт:
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.