Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. jQuery 4.0 впервые за 10 лет: модульная архитектура и удаление дублирующего кода

jQuery 4.0 впервые за 10 лет: модульная архитектура и удаление дублирующего кода

Запланировано Прикреплена Закрыта Перенесена JavaScript
jquery 4.0es-модулиtrusted types
1 Сообщения 1 Постеры 13 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал в отредактировано
    #1

    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 Нативная альтернатива Примечание
    isArray Array.isArray Быстрее и короче
    trim str.trim() ECMA-5+
    Deferreds Promise В 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 и большего фокуса на безопасность. Это релиз для тех, кто ценит стабильность без лишнего веса.

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы