<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[jQuery 4.0 впервые за 10 лет: модульная архитектура и удаление дублирующего кода]]></title><description><![CDATA[<p dir="auto">jQuery 4.0 наконец вышел - первый крупный релиз за почти десять лет. Библиотека обновилась под современные реалии: ES-модули вместо старых AMD, поддержка <strong>Trusted Types</strong> для безопасности и удаление устаревших API. Это поможет сократить размер кода и упростить миграцию на новые инструменты.</p>
<p dir="auto">Разработчики убрали дублирующий функционал, который давно заменен нативными возможностями браузеров. Теперь jQuery легче интегрируется в Vite или webpack, а slim-версия стала еще компактнее. Если вы работаете с legacy-проектами, это шанс обновиться без больших переделок.</p>
<h2>Модульная архитектура: переход на ES-модули</h2>
<p dir="auto">jQuery 4.0 полностью перешел на <strong>ECMAScript Modules (ESM)</strong>. Раньше исходный код использовал AMD-модули, что требовало RequireJS или других хаков для импорта. Теперь библиотека поставляется как нативный модуль, совместимый с современными сборщиками вроде Rollup, Vite и webpack. Это упрощает разработку: импорт jQuery стал прямым, без лишних настроек.</p>
<p dir="auto">Переход на ESM позволил очистить код от legacy-зависимостей. Тесты проходят отдельно для модульной версии, что гарантирует стабильность. В результате библиотека лучше вписывается в современные workflows, особенно в проектах на <strong>TypeScript</strong> или с tree-shaking. Но есть нюанс: если проект на старом RequireJS, придется мигрировать.</p>
<p dir="auto">Вот ключевые изменения в модульной архитектуре:</p>
<ul>
<li><strong>Нативный импорт</strong>: <code>import $ from 'jquery';</code> работает из коробки в поддерживаемых браузерах.</li>
<li><strong>Совместимость со сборщиками</strong>: Полная поддержка Vite, webpack 5+, esbuild без плагинов.</li>
<li><strong>Tree-shaking</strong>: Удаляются неиспользуемые части кода при сборке.</li>
<li><strong>Меньший размер</strong>: После миграции на Rollup бандл стал легче на несколько КБ.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Сравнение модульных систем</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>AMD (jQuery 3.x)</strong></td>
<td>RequireJS обязателен, хаки для ESM</td>
</tr>
<tr>
<td><strong>ESM (jQuery 4.0)</strong></td>
<td>Нативная поддержка, tree-shaking</td>
</tr>
<tr>
<td><strong>Совместимость</strong></td>
<td>Только современные браузеры</td>
</tr>
</tbody>
</table>
<h2>Удаление дублирующего функционала</h2>
<p dir="auto">В jQuery 4.0 убрали множество устаревших API, которые давно заменены нативными методами JavaScript. Например, <code>jQuery.isArray</code>, <code>jQuery.trim</code> и <code>jQuery.parseJSON</code> больше не нужны - за них отвечают <code>Array.isArray</code>, <code>String.prototype.trim</code> и <code>JSON.parse</code>. Это сделало библиотеку чище и легче: полная версия после gzip - 27.5 КБ, slim - всего 19.5 КБ.</p>
<p dir="auto">Удаление коснулось и внутренних методов, вроде <code>Array.prototype.push</code>, <code>sort</code>, <code>splice</code> на объектах jQuery. Разработчики убрали <em>недокументированные параметры</em> и сложное поведение для кросс-браузерности. Большинство пользователей перейдут безболезненно, но для миграции есть специальный плагин. Это шаг к минимализму: jQuery фокусируется на DOM-манипуляциях, а не на полифиллах.</p>
<p dir="auto">Убранные API и их альтернативы:</p>
<ul>
<li><code>jQuery.isArray()</code> → <code>Array.isArray()</code></li>
<li><code>jQuery.trim()</code> → <code>str.trim()</code></li>
<li><code>jQuery.parseJSON()</code> → <code>JSON.parse()</code></li>
<li><code>$.Deferred</code> и <code>Callbacks</code> → нативные <strong>Promises</strong></li>
<li>Внутренние Array методы → стандартные прототипы</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Удаленные API</th>
<th>Нативная альтернатива</th>
<th>Примечание</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>isArray</code></td>
<td><code>Array.isArray</code></td>
<td>Быстрее и короче</td>
</tr>
<tr>
<td><code>trim</code></td>
<td><code>str.trim()</code></td>
<td>ECMA-5+</td>
</tr>
<tr>
<td><code>Deferreds</code></td>
<td><code>Promise</code></td>
<td>В slim-версии убрано</td>
</tr>
</tbody>
</table>
<h2>Улучшения безопасности и браузерная поддержка</h2>
<p dir="auto">jQuery 4.0 добавил поддержку <strong>Trusted Types</strong> - стандарта против XSS-атак. Теперь методы вроде <code>.html()</code> принимают объекты <code>TrustedHTML</code>, что совместимо с <strong>Content Security Policy (CSP)</strong>. Это защищает от инъекций через <code>innerHTML</code> или <code>eval</code>, особенно при работе с пользовательским контентом.</p>
<p dir="auto">Сократили поддержку старых браузеров: нет IE 10 и ниже, старых iOS/Firefox/Android. IE 11 пока остается, но уйдет в jQuery 5. Порядок событий фокуса (focus/blur) приведен к W3C: теперь blur → focusout → focus → focusin, без jQuery-хаками. Slim-сборка без AJAX, анимаций и Deferreds идеальна для простых DOM-задач.</p>
<p dir="auto">Ключевые улучшения:</p>
<ul>
<li><strong>Trusted Types</strong>: <code>$(trustedHTML)</code> вместо строк.</li>
<li><em>Новый порядок фокуса</em>: Соответствует спецификации.</li>
<li><strong>Дроп IE &lt;11</strong>: Меньше полифиллов.</li>
<li><strong>Slim 19.5kB</strong>: Без Promises-дубликатов.</li>
</ul>
<h2>Что под капотом: slim-сборка и миграция</h2>
<p dir="auto">Slim-версия jQuery 4.0 стала ультракомпактной - убрали Deferreds/Callbacks, полагаясь на <strong>Promises</strong>. Это актуально для проектов без AJAX/анимаций. Полная версия сохраняет все, но рекомендуют тестировать на breaking changes. Для legacy-кода есть миграционный плагин от команды.</p>
<p dir="auto">Размер сократился за счет удаления дублирующего кода. Библиотека остается на 70% топ-сайтов мира, несмотря на React/Vue. Обновление снижает техдолг в enterprise и CMS.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Версия</th>
<th>Размер (gzip)</th>
<th>Что убрано</th>
</tr>
</thead>
<tbody>
<tr>
<td>Полная</td>
<td>27.5 КБ</td>
<td>Устаревшие API</td>
</tr>
<tr>
<td>Slim</td>
<td>19.5 КБ</td>
<td>AJAX, effects, Deferreds</td>
</tr>
</tbody>
</table>
<h2>Взгляд в будущее jQuery</h2>
<p dir="auto">jQuery 4.0 модернизировал библиотеку, но не решил все. Остались вопросы по IE 11 и полным breaking changes в 5.0. Стоит протестировать slim в новых проектах и мигрировать legacy. Библиотека жива и адаптируется под ESM-эру.</p>
<p dir="auto">Дальше ждем полифиллов для Promises в IE и большего фокуса на безопасность. Это релиз для тех, кто ценит стабильность без лишнего веса.</p>
]]></description><link>https://forum.exlends.com/topic/1563/jquery-4.0-vpervye-za-10-let-modulnaya-arhitektura-i-udalenie-dubliruyushego-koda</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 11:17:20 GMT</lastBuildDate><atom:link href="https://forum.exlends.com/topic/1563.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Mar 2026 12:13:25 GMT</pubDate><ttl>60</ttl></channel></rss>