Angular 9 меньше, быстрее и проще в использовании, и он облегчит жизнь разработчикам Angular. Полная версия Angular 9 будет выпущена в месяце октябрь / ноябрь 2019.
Изучите это: Angular 9 против Angular 8 против Angular 7 против Angular 6, 5, 4, 2
Добавлены функции Angular 9 -
1. В ядро добавлена схема миграции недекорированных классов.
2. formControlName также принимает число в форме
3. Теперь разрешите директивы без селектора в качестве базовых классов в View Engine в компиляторе.
4. Добавлена поддержка директивы без селектора в качестве базовых классов в Ivy, а также сделан компилятор Ivy по умолчанию для ngc.
5. Преобразуйте всю диагностику ngtsc в ts. Диагностика
6. bazel: поддерживайте цели ts_library как точки входа для ng_package.
7. core: добавить схему динамических запросов.
8. core: Отметить TestBed.get как устаревшее.
9. ivy: выставить помощник window.ng.getDebugNode, а также поддержать ng-add в пакете локализации.
10. ivy: i18n - добавить поддержку синтаксиса для блока метаданных $ localize.
11. ivy: i18n - реорганизуйте точки входа для лучшего повторного использования.
12. language-service: разрешить вход на TypeScriptHost.
13. языковая служба: предоставьте диагностику недопустимых templateUrls.
14. языковая служба: обеспечивает диагностику недопустимых styleUrls.
УДАЛЕНИЕ -
core: функция TestBed.get помечена как устаревшая, используйте вместо нее TestBed.inject.
Повышение производительности:
- Привязка тестов обновления, а также преобразование всех тестов на основе узлов для использования средств тестирования.
- Избегайте мегаморфных чтений во время привязки свойств.
- Избегайте повторных чтений lview в инструкциях по конвейеру.
- Избегайте повторных чтений LView в инструкциях по свойствам.
- Избегайте ненужных чтений DOM в инструкциях по стилю.
- Инициализируйте входы / выходы TNode на первом этапе создания Ivy.
- limit TNode.outputs читает для плюща.
8. Языковой сервис, сохраняйте кеш анализируемых модулей, когда исходные файлы не меняются.
It looks like - describe(‘TypeScriptServiceHost’, () => { it(‘should not clear caches when external template changes’, () => { const tsLSHost = new MockTypescriptHost([‘/app/main.ts’], toh); const tsLS = ts.createLanguageService(tsLSHost); const ngLSHost = new TypeScriptServiceHost(tsLSHost, tsLS); const oldModules = ngLSHost.getAnalyzedModules(); tsLSHost.override(‘/app/test.ng’, ‘<div></div>’); const newModules = ngLSHost.getAnalyzedModules(); expect(newModules).toBe(oldModules); }); });
Критические изменения Angular 9 -
1) Приложения Ivy: -
Раньше в приложениях Ivy поставщики Hammer были включены по умолчанию. С помощью этого коммита приложения, которым нужна поддержка Hammer, должны импортировать HammerModule в свой корневой модуль, т.е.
импортировать {HAMMER_PROVIDERS} из ‘./dom/events/hammer_gestures’
2) ServiceWorker:
Удалите устаревшую опцию versionedFiles из конфигурации группы ресурсов Service worker в ngsw-config.json.
До
“assetGroups”: [ { “name”: “test”, “resources”: { “versionedFiles”: [ “/**/*.txt” ] } } ]
После
“assetGroups”: [ { “name”: “test”, “resources”: { “files”: [ “/**/*.txt” ] } } ]
Исправления ошибок Angular 9 -
common: обновите $ locationShim, чтобы уведомлять слушателей onChange перед отправкой событий AngularJS.
компилятор: вернуть enableIvy true при использовании readConfiguration
плющ -
1. Получите имя прямо из nativeNode
2. Обработка пустых привязок в средстве проверки типов шаблонов.
3. В ngcc обрабатывайте встроенный экспорт в коде commonjs.
4. ngcc должен индексировать только экспорт .d.ts в пакете.
5. Ошибка ngTemplateOutlet при переключении между нулевым значением и значением шаблона.
языковая служба -
1. Создайте экземпляр MetadataResolver один раз.
2. Удалите «контекст», используемый для разрешения модуля.
ngcc -
1. Обработайте глубокий импорт, для которого уже есть расширение.
2. Игнорировать свойства формата, которые существуют, но не определены.
Ссылка - https://github.com/angular/angular/blob/master/CHANGELOG.md
Примечание о совместимости. Основная цель обещания обратной совместимости - гарантировать, что изменения в основной структуре и инструментарии не нарушат существующую экосистему компонентов и приложений и не станут чрезмерным бременем для обновления / миграции. об авторах приложений и компонентов Angular.
Примечание: версии Angular ^ 4.0.0 и ^ 5.0.0 больше не поддерживаются.
Наслаждаться!!