Что нового в Angular 13

автор vadim


Angular 13, последнее обновление популярной веб-инфраструктуры Google на основе TypeScript, которая обещает стать «100-процентным Ivy», теперь доступна в виде рабочей версии.

Ivy — это механизм компиляции и рендеринга Angular следующего поколения, который Angular поддерживает в последних выпусках, сохраняя при этом поддержку предшественника View Engine. Поддержка библиотеки Ivy завершается в Angular 13, а поддержка View Engine удаляется. Обновления производительности также выделяются в Angular 13, затрагивая такие области, как Adobe Fonts и сборщик JavaScript ESBuild, при этом ESBuild теперь поддерживает исходные карты CSS, что позволяет оптимизировать глобальный CSS.

Код для рабочей версии можно найти на GitHub. Разработчики могут запускать ng update в своих проектах, чтобы получить Angular 13. Изменения, упомянутые в примечаниях к выпуску Angular 13 и в бюллетене, объявляющем о выпуске рабочей версии, включают следующее:

  • Добавлена ​​поддержка TypeScript 4.4; с 5 октября версии старше TypeScript 4.4.2 больше не поддерживаются в ядре.
  • Версии Node.js старше v12.20 больше не поддерживаются, поскольку пакеты Angular используют функцию экспорта пакетов Node.js с шаблонами подпутей.
  • Поддерживается библиотека реактивного программирования rxjs (Reactive Extensions for JavaScript) v7.
  • Встроенные валидаторы, такие как min, maxи minLength можно отключить или включить динамически.
  • Упрощенный API ViewContainerRef.createComponent позволяет динамически создавать компоненты.
  • Улучшено сообщение об ошибках.
  • Постоянная возможность «кэша сборки по умолчанию» позволила улучшить сборки.
  • Представлен формат пакета Angular 13, в котором из пакетов удален код, специфичный для View Engine. НПФ был оптимизирован и модернизирован.
  • $localize — стабильный API для интернационализации.
  • Пользовательские условия могут быть установлены в ng_package.
  • Маршрутизатор больше не заменяет URL-адрес браузера, когда новая навигация отменяет текущую навигацию. Это вызывало мерцание URL-адресов и служило только для поддержки некоторых гибридных приложений AngularJS. Гибридные приложения, основанные на navigationId к маршрутизатору вместо этого следует подписаться на NavigationCancel мероприятия и проводить replaceState сами добавим navigationId в состояние маршрутизатора.
  • wrappedValue класс больше не поддерживается @angular/core, что может привести к ошибкам компиляции или сбоям во время выполнения, если библиотеки, использующие wrappedValue используются. Использование wrappedValue следует удалить.
  • Поведение SpyLocation используется RouterTestingModule был изменен в соответствии с поведением браузеров.
  • Что касается ядра, к инициализаторам статических свойств добавляются чистые аннотации. Свойства класса с инициализаторами, которые вызывают выполнение кода, могут иметь побочные эффекты при оценке модуля, аналогичные эффекту кода уровня модуля. Таким образом, оптимизаторы не могут безопасно удалить класс с таким статическим свойством, поскольку потенциальные побочные эффекты могут повлиять на выполнение приложения. Чтобы классы с этими типами статических свойств можно было оптимизировать и удалять, если они не используются, выражения инициализатора для статических свойств можно пометить как чистые.
  • Кэш сервисного работника очищается в работнике безопасности, чтобы гарантировать, что устаревшее или поврежденное содержимое не будет передаваться в будущих запросах.
  • Для браузера платформы улучшено сообщение об ошибке отсутствия триггера анимации.
  • Что касается форм, в Angular 13 представлен новый тип: FormControlStatus, который представляет собой объединение всех возможных строк состояния для элементов управления формы. Также, AbstractControl.status был сужен от string к FormControlStatus и StatusChanges были сужены от Observable<any> к Observable<FormControlStatus>. Согласно журналу изменений Angular, большинство приложений должны беспрепятственно использовать эти новые типы.
  • Для маршрутизатора было предложено изменение, чтобы исправить ситуацию, в которой сериализатор URL-адресов по умолчанию впоследствии удалял все, включая вопросительный знак в параметрах запроса, что приводило к неправильному анализу навигации по /path?q=hello?&other=123. Это изменение обеспечивает корректный синтаксический анализ.
  • Angular CLI был улучшен.
  • Улучшения в TestBed позволяют лучше выполнять демонтаж тестовых модулей и сред после каждого теста.
  • Поддержка IE11 (Internet Explorer) удаляется.
  • Для компилятора-cli анализ будет пропущен для инкрементных сборок файлов без поведения Angular. При инкрементной сборке компилятор пытается повторно использовать как можно больше данных анализа предыдущей компиляции, чтобы избежать повторного выполнения анализа. Однако для исходных файлов без поведения Angular данные анализа не будут записываться, в результате чего исходный файл будет повторно анализироваться при каждой сборке, даже если ничего не изменилось. Этот коммит позволяет избежать анализа таких исходных файлов.
  • Для языковой службы будет предложена поддержка автозаполнения типов объединения строковых литералов в шаблонах.
  • Для маршрутизатора отсутствующие события розетки будут добавлены в RouterOutletContract. Это понадобится, когда компоненты будут динамически отображаться через объединение модулей в какой-то момент в будущем.

Производственные выпуски Angular запланированы на каждые шесть месяцев. Предшественник Angular 12 вышел 12 мая.

Дальше читайте это:

  • Облачные вычисления больше не являются пустяком
  • Что такое генеративный ИИ? Искусственный интеллект, который создает
  • Программирование с помощью ИИ: советы и лучшие практики от разработчиков
  • Python пытается удалить GIL и повысить параллелизм
  • 7 причин, по которым Java по-прежнему хороша
  • Война за лицензирование открытого исходного кода окончена

Related Posts

Оставить комментарий