Pull to refresh

Добро пожаловать в ренессанс Angular: представлена 17-я версия

Reading time2 min
Views11K
Новый логотип Angular
Новый логотип Angular

Новый синтаксис шаблонов

Теперь при создании приложения будет появляться предложение о использовании SSR
Теперь при создании приложения будет появляться предложение о использовании SSR

Он проще читается и улучшает производительность

Пример использования нового switch
Пример использования нового switch

Мигрировать на новые директивы можно будет одной командой:

ng g @angular/core:control-flow-migration

@defer

Была представлена новая возможность отложенной загрузки
Была представлена новая возможность отложенной загрузки

Отложенные представления можно использовать в шаблоне компонента, чтобы отложить загрузку выбранных зависимостей в этом шаблоне. Эти зависимости включают компоненты, директивы и каналы, а также любой связанный CSS. Чтобы использовать эту функцию, вы можете декларативно обернуть раздел вашего шаблона в блок @defer, который определяет условия загрузки.

Необязательные блоки:

@placeholder - отображает контент до загрузки (доп условия: minimum - время, сколько показывается лоадер)

@defer {
  <large-component />
} @placeholder (minimum 500ms) {
  <p>Placeholder content</p>
}

@loading - срабатывает при загрузке компонента (доп условия: after - после скольки милисекунд показывает лоадер, minimum - время, сколько показывается лоадер)

@defer {
  <large-component />
} @loading (after 100ms; minimum 1s) {
  <img alt="loading..." src="loading.gif" />
}

@error - срабатывает при ошибке загрузки

@defer {
  <calendar-cmp />
} @error {
  <p>Failed to load the calendar</p>
}

Встроенные триггеры:

  • idle - вызовет отложенную загрузку, как только браузер достигнет состояния простоя (обнаруживается с помощью API-интерфейса requestIdleCallback), является триггером по умолчанию

  • interaction - загружает при клике, фокусе или похожем поведении

  • viewport - загружает, когда контент попадает в пользовательский viewport

  • hover - загружает при наведении

  • timer - загружает после прошествия заданного времени

Доступны также кастомные триггеры
Доступны также кастомные триггеры

Новый синтаксис имеет встроенные триггеры, но можно задавать и кастомные. Поддерживает prefetch и будет доступен в новой версии в качестве developer preview

prefetch наглядно
prefetch наглядно

Standalone компоненты

Теперь по умолчанию
Теперь по умолчанию

Чтобы не создавать standalone компонент, а обычный, пропишите дополнительный флаг:

ng generate component new-component --standalone false

@Input transform

Новые transform для @Input
Новые transform для @Input

При таком подходе теперь необязательно писать [disabled]="true", вместо этого просто disabled. Angular поймет, если вы передадите просто инпут, он его применит со значением true, а иначе применит значение, которое вы указали при инициализации.

Гидратация и SSR

Особенностью новой версии является гидратация и улучшения SSR:

  • поддержка ESM для серверных сборок

  • улучшение скорости сборки серверных бандлов

  • улучшен dev сервер для SSR

И ещё...

Новые сборщики по умолчанию
Новые сборщики по умолчанию

Благодаря чему material.angular.io билдится в 2.5 раза быстрее!

Немного преобразили Angular Dev Tools - теперь инжекторы и провайдеры проще и нагляднее инспектировать.

Также был представлен в бета-версии новый сайт с документацией: https://angular.dev/

Можно будет обновиться до новой 17 версии Angular уже 8 ноября!

Only registered users can participate in poll. Log in, please.
Как вам обновление?
91.3% Круто! Angular становится лучше168
8.7% Отстой, обновление так себе16
184 users voted. 50 users abstained.
Tags:
Hubs:
Total votes 17: ↑17 and ↓0+17
Comments4

Other news