Какво ново в Angular 9.1

Пристигна Angular 9.1, с подобрения за производителност и паралелност на компилатора за съвместимост ngcc. Компилацията и рендирането на Ivy също получи внимание, което доведе до по-добра производителност.

Angular 9.1, публикуван на 25 март, следва изданието Angular 9.0, което стана достъпно като работно издание на 6 февруари 2020 г. Версията 9.0 надстройка до популярната базирана на TypeScript рамка превключва приложенията към компилатора на Ivy и по време на изпълнение.

Ivy предлага по-бърза, AOT компилация, както и по-малки размери на пакета, по-бързо тестване и по-добро отстраняване на грешки. Подобреното обвързване на клас и стил на CSS е представено и в Ivy, заедно с подобрения в проверката на типа, грешките в изграждането и времето за изграждане. Също така част от Angular 9 е  ng update, което обещава да бъде по-надежден и информативен инструмент за актуализиране на приложения и техните зависимости. 

Angular осигурява инжектиране на зависимост, което е особено полезно за сглобяване на услуги за данни за приложения, заедно с използването на HTML шаблон за съставяне на компоненти. В Angular разработчиците все още съставят компоненти с HTML компонент, който се свързва с TypeScript код за императивни части на програмата.

Къде да изтеглите Angular 9.1 или предишни версии

Можете да изтеглите производствената версия на Angular от GitHub, както и бета версии. Публикувано е ръководство за ъглова актуализация, заедно с ръководство за надстройка до Angular 9.

Нови функции в Angular 9.1

  • Оптимизации на производителността за ngcc, както и подобрения на паралелността и надеждността за случаи на използване на ngcc monorepo. Скриптът за слединсталиране на NPM вече не се препоръчва. При ngcc асинхронната обработка е на пауза, ако друг процес има заключващ файл. Също така с ngcc, способността за изравняване на изходната карта е в състояние да зареди дърво от изходни файлове, свързани с изходни карти, и да ги изравнява в една изходна карта. Тази карта на източника се преобразува директно от окончателно генерирания файл към първоначалните източници, посочени от междинните карти на източника.
  • Поддържа се TypeScript 3.8.
  • Интернационализацията чрез i18n вече поддържа информация за локала на RTL.
  • Ефективността на Ivy е подобрена чрез премахване на неизползвания аргумент за събитие в инструкциите на слушателя. Преди това Ivy генерира $eventаргумент, дори ако той не се използва от изразите на слушателя. Това може да доведе до ненужно генериране на байтове. Също така е включена корекция за съвместимост за проверка на шаблони на Ivy.

Нови функции в Angular 9.0

Освен че Ivy е по подразбиране, Angular 9.0 включва следните нови функции и подобрения:

  • Новите опции за providedIn, за създаване на @Injectableуслуга, включват platform, което прави услугата достъпна в специален инжектор на единична платформа, споделен от всички приложения на дадена страница, и anyкоято предоставя уникален екземпляр във всеки модул, който инжектира маркера.
  • Компоненти, за да се гарантира, че модулните тестове са правилно обхванати и по-малко чупливи. Подробностите за изпълнението са абстрахирани.
  • Нови компоненти, позволяващи включване на възможностите на YouTube и Google Maps в приложения.
  • Поддържат се TypeScript 3.7 и TypeScript 3.6.
  • Ефективността е подобрена за слушателите на събития.
  • Кодът на валутата по подразбиране в CurrencyPipeсега е конфигурируем.
  • За да подобрите производителността на визуализатора на Ivy, повторните глобални достъпи до състоянието се премахват от инструкциите i18n, когато информацията вече е налична. Ivy също увеличава производителността от премахването на допълнителен SafeDetectionкод. И пакетът @ angular / localize може да бъде добавен към Angular CLI проект чрез ng add.
  • Също така за визуализатора на Ivy се предлагат по-добри съобщения за грешки за неизвестни компоненти. Освен това е добавен нов флаг, localize-translateкойто позволява да се посочи локала на източника.
  • За да се подобри производителността в ядрото, дезинфекцията става разклащаща се в Ivy renderer. 
  • Също така в Ivy, проверката на типа на шаблона е променена, за да се получи ts.Diagnostics. Това поправя проблем с дизайна, при който Angular компилаторът е създал както естествена диагностика на TypeScript, така и собствен формат за вътрешна диагностика, който не е бил оптимален.
  • Също така за ядрото, Angular добавя нова схема за миграция, съгласно дадения план за миграция.
  • В NgFormSelectorWarningселектора е била отстранена.
  • За ngcc (Angular compatibility compiler) е добавена миграция за недекорирани детски класове.
  • Направени са редица корекции на грешки за Ivy, компилаторът, ядрото, езиковата служба, ngcc и Bazel.

Нови функции в Angular 8.2

Издадена през август 2019 г., Angular версия 8.2 включва:

  • За да се подобри производителността на компилатора, копирането се избягва от прототипа, докато се клонира обект. Това актуализира функцията за клониране на класа ApplySourceSpanTransformer, където е използван цикълът in-in, което е довело до копиране от прототип към собствени свойства, консумирайки повече памет.
  • Поддръжка на TypeScript 3.5.
  • Компилиране на цели, използвани от инструментите на Kythe с визуализатора на Ivy. Това елиминира проблеми с кръстосани препратки към преходни зависимости, които не се генерират, поради това как такива зависимости се зареждат от наследения компилатор.
  • Поддръжка за $elementподобрени компоненти templateи templateURLфункции.
  • За Bazel потребителите вече могат да предадат персонализиран Bazel CompilerHost за Angular компилация, поддържащ заместването на хоста на компилатора TypeScript.
  • Редица корекции на грешки, включително увеличаване на лимита на паметта ngcпод Bazel от 2GB на 4GB.

Нови функции в Angular 8.1

  • Осигурени са тестови помощници за надстройката / статичната библиотека, които свързват инжектори Angular и AngularJS, без да е необходимо пълно зареждане на хибридно приложение.
  • Оттегляне на интеграцията с Web Tracing Framework, която Angular преди това е поддържала за тестване на производителността. Екипът за разработка на Angular отбеляза, че интеграцията не е поддържана и вероятно не работи за повечето приложения на Angular днес. 
  • Изпълнение на definitionAndBoundSpan, което сега се предпочита пред definition. Изпълнението на definitionе рефакторирано и опростено.
  • Оттегляне на приложните програмни интерфейси (API) на платформата. Включването на тази поддръжка беше експериментално, за да се опита да стартира цяло приложение в Web Worker, за да може уеб съдържание да изпълнява фонови скриптове. Привържениците на ъгъла вече не се стремят да правят това.

Angular 8.1 също предлага корекции на грешки за инструмента за изграждане на Bazel, както и за Angular ядрото и рутера.

Нови функции в Angular 8.0

Подобренията в Angular 8, издадени през май 2019 г., включват следното: