- PVSM.RU - https://www.pvsm.ru -

Новые возможности Angular 6.1

25 июля вышел Angular 6.1. Данный минорный релиз [1] фреймворка можно рассматривать как замену Angular 6.0, включающую в себя некоторые новшества и исправления ошибок. Этот материал, перевод заметки из блога Angular, посвящён основным новым возможностям Angular 6.1.

Новые возможности Angular 6.1 - 1 [2]

Маршрутизатор и сохранение позиции прокрутки

Теперь разработчики Angular-приложений могут воспользоваться новой возможностью маршрутизатора, которая позволяет запоминать и восстанавливать местоположение пользователя на странице — позицию прокрутки или скроллинга. При переходе на очередную страницу приложения позиция скроллинга сбрасывается, при этом запоминается положение пользователя на предыдущей странице. Нажатие на кнопку «Назад» приводит к открытию предыдущей страницы с учётом сохранённой позиции прокрутки.

Для того чтобы включить эту возможность, можно воспользоваться следующей командой:

RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})

Ожидается, что в будущем мажорном релизе платформы маршрутизатор по умолчанию будет настроен на восстановление позиции скроллинга.

ShadowDOM v1 и View Encapsulation

Существует множество способов связывания CSS-правил с компонентами, в которых определены эти правила. Это называется View Encapsulation. Инкапсуляцию можно переключить на использование ShadowDOM v1 в декораторе компонента. Делается это так:

@Component({
  templateUrl: './my-component.html',
  encapsulation: ViewEncapsulation.ShadowDom
})
export class MyComponent { }

Теперь применение значения ViewEncapsulation.Native, которое означает использование Shadow DOM v0, признано устаревшим.

ShadowDOM v1 отличается лучшей кросс-браузерной поддержкой, чем предыдущая версия стандарта. Работа над этим стандартом изначально велась с учётом возможности его использования в различных браузерах. О различиях Shadow DOM v0 и v1 можно почитать здесь [3].

Новшества ShadowDOM v1 будут интересны, в основном, авторам библиотеки и продвинутым разработчикам. Надо отметить, что применение Shadow DOM v1 необходимо для использования проецирования контента (content projection) в рамках технологии Angular Elements.

Объединение правил Schematics в цепочки

В этом релизе были улучшены возможности инструмента Schematics [4], в результате теперь из существующего правила можно возвращать новое правило [5]. Это позволяет разработчикам более гибко определять набор правил для Schematics.

Поддержка TypeScript 2.9

Теперь Angular, наряду с TypeScript 2.7, поддерживает TypeScript 2.8 [6] и 2.9 [7]. Одна из важных возможностей TS 2.9, которая пригодится многим разработчикам, имеет отношение к ошибкам, к таким, как следующая:

Exported variable ‘x’ has or is using name ‘y’ from external module ‘z’ but cannot be named

В TS внесены изменения, благодаря которым, во-первых, подобные ошибки больше не появляются, а, во-вторых, больше не нужно переписывать код для того, чтобы привести его к состоянию, соответствующему подобным шаблонам экспорта.

Итоги

В новом релизе [8] Angular есть и другие изменения, например, касающиеся обработки неправильно сформированных URL (malformedUriErrorHandler [9]) и направленные на улучшение работы с ассоциативными массивами и объектами (KeyValuePipe [10]). Вышла и новая версия angular-cli [11].

Angular 6.1 является последним запланированным минорным релизом версии 6.x. Поэтому, в обозримом будущем, можно ожидать выхода бета-версий Angular 7.0 и появления в этом фреймворке новых интересных возможностей.

Уважаемые читатели! Какие новшества Angular 6.1 кажутся вам наиболее интересными? Чего вы ждёте от Angular 7.0?

Новые возможности Angular 6.1 - 2 [12]

Автор: ru_vds

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/287779

Ссылки в тексте:

[1] минорный релиз: http://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html

[2] Image: https://habr.com/company/ruvds/blog/418821/

[3] здесь: https://hayato.io/2016/shadowdomv1/

[4] Schematics: https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2

[5] правило: https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/README.md

[6] 2.8: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html

[7] 2.9: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html

[8] новом релизе: https://github.com/angular/angular/blob/master/CHANGELOG.md

[9] malformedUriErrorHandler: https://github.com/angular/angular/commit/86d254d

[10] KeyValuePipe: https://github.com/angular/angular/commit/2b49bf7

[11] angular-cli: https://github.com/angular/angular-cli/releases/tag/v6.1.0

[12] Image: https://ruvds.com/ru-rub/#order

[13] Источник: https://habr.com/post/418821/?utm_campaign=418821