Нові можливості Angular 6.1

Нові можливості Angular 6.1 25 липня вийшов Angular 6.1. Даний мінорний реліз фреймворку можна розглядати як заміну Angular 6.0, що включає в себе деякі нововведення і виправлення помилок. Цей матеріал, переклад замітки з блогу Angular, присвячений основним новим можливостям Angular 6.1.

Маршрутизатор і збереження позиції прокрутки

Тепер розробники 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 можна почитати тут

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

Об’єднання правил Schematics в ланцюжка

У цьому релізі були поліпшені можливості інструменту Schematics, в результаті тепер з існуючого правила можна повертати нове правило. Це дозволяє розробникам більш гнучко визначати набір правил для Schematics.

Підтримка TypeScript 2.9

Тепер Angular, поряд з TypeScript 2.7, підтримує TypeScript 2.8 і 2.9. Одна з важливих можливостей TS 2.9, яка стане в нагоді багатьом розробникам, має відношення до помилок, до таких, як наступна:

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

В TS внесені зміни, завдяки яким, по-перше, подібні помилки більше не з’являються, а, по-друге, більше не потрібно переписувати код для того, щоб привести його до стану, відповідному подібним шаблонами експорту.

Підсумки

У новому релізі Angular є й інші зміни, наприклад, що стосуються обробки неправильно сформованих URL (malformedUriErrorHandler) і спрямовані на поліпшення роботи з асоціативними масивами і об’єктами (KeyValuePipe). Вийшла і нова версія angular-cli.

Angular 6.1 є останнім запланованим мінорним релізом версії 6.x. Тому, в доступному для огляду майбутньому, можна очікувати виходу бета-версій Angular 7.0 і появи в цьому фреймворку нових цікавих можливостей. 

Переклад статті “Angular v6.1 Now Available — TypeScript 2.9, Scroll Positioning, and more