Angular v16 запущен в начале мая. Узнайте, какие значительные улучшения привнесены в эту версию.

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

В недавнем выпуске Angular версии 16 представлены интересные обновления и улучшения процесса разработки, а также улучшена производительность и стабильность приложений.

1. Угловые сигналы

Угловые сигналы это библиотека, которая позволяет определять реактивные значения и устанавливать зависимости между ними. Вот простой пример того, как использовать сигналы Angular в приложении Angular:

@Компонент ({
селектор: 'мое приложение',
автономный: истинный,
шаблон: `
{{ полное имя() }}

Приведенный выше фрагмент кода создает вычисляемое значение с именем fullName, которое зависит от сигналов firstName и lastName. Кроме того, он определяет эффект, функцию обратного вызова, которая запускается всякий раз, когда изменяется значение считываемых ею сигналов.

В этом случае значение fullName зависит от firstName и lastName, поэтому изменение любого из них вызывает эффект. Когда значение firstName установлено на John, браузер выводит на консоль следующее сообщение:

 Имя изменено: Джон Доу.

2. Автономная новая коллекция Ng

Начиная с Angular v16, вы можете создавать новые автономные проекты с самого начала! Чтобы опробовать предварительную версию автономных схем для разработчиков, убедитесь, что у вас установлен Angular CLI v16, и выполните следующую команду:

новый --автономный

Сделав это, вы получите более простую структуру проекта без каких-либо NgModules. Кроме того, все генераторы в проекте будут производить отдельные директивы, компоненты и пайпы!

3. Автоматическое сопоставление параметров маршрута

Рассмотрим конфигурацию маршрутизации следующим образом:

экспортконстанта маршруты: Маршруты = [{
путь: 'поиск:/идентификатор',
компонент: SearchComponent,
решать: {
searchDetails: searchResolverFn
}
}];

До Angular 16 вам нужно было внедрить службу ActivatedRoute для получения параметров URL-адреса, параметров запроса или связанных данных для определенного URL-адреса.

Вот пример того, как вы должны были это сделать:

@Компонент({
...
})
экспортсорт Компонент поиска {
только для чтения #activatedRoute = вводить (ActivatedRoute);
только для чтения идентификатор $ = этот.#activatedRoute.paramMap (карта(параметры => параметры.получить('идентификатор')));
данные только для чтения$ = этот.#activatedRoute.data.map(({
поискДетали
}) => searchDetails);
}

С Angular 16 вам больше не нужно внедрять службу ActivatedRoute для получения различных параметров маршрута, потому что вы можете привязать их непосредственно к входным данным компонента.

Чтобы активировать эту функциональность в приложении, использующем модульную систему, установите соответствующее значение в параметрах RouterModule:

RouterModule.forRoot (маршруты, {
связываниеКомпонентинпутс: истинный
})

Для автономного приложения вам нужно вместо этого вызвать функцию:

обеспечитьмаршруты (маршруты, withComponentInputBinding());

Как только вы активируете этот функционал, компонент станет намного проще:

@Компонент({
...
})
экспортсорт Компонент поиска {
@Вход() идентификатор!: нить;
@Вход() searchDetails!: SearchDetails;
}

4. Требуемый ввод

Долгожданная функция для сообщества Angular — возможность помечать определенные входные данные как необходимые. До сих пор вам приходилось использовать различные обходные пути, чтобы добиться этого, например, вызвать ошибку в NgOnInit. жизненный цикл, если переменная не была определена или изменение селектора компонента для включения обязательного входы.

Однако оба этих решения имели свои преимущества и недостатки. Начиная с версии 16, сделать ввод обязательным так же просто, как указать объект конфигурации в метаданных входной аннотации:

@Вход({
необходимый: истинный
}) имя!: нить;

5. Vite как сервер разработки

Angular 14 представил новый сборщик JavaScript под названием EsBuild, который значительно сократил время сборки примерно на 40%. Однако вы могли реализовать этот прирост производительности только на этапе сборки, а не во время разработки с сервером разработки.

В предстоящем выпуске Angular, инструмент сборки Vite также позволяет использовать EsBuild во время разработки.

Чтобы активировать эту функцию, обновите конфигурацию построителя в файле angular.json следующим образом:

"архитектор": {
"строить": {
"строитель": "@angular-devkit/build-angular: браузер-esbuild",
"параметры": {
...
}
}

Обратите внимание, что эта функция все еще является экспериментальной.

Улучшение опыта разработки и производительности

Angular версии 16 содержит интересные обновления, такие как Angular Signals для управления данными, автономный проект. создание, автоматическое сопоставление параметров маршрута, необходимые входные данные и интеграция Vite для улучшения разработка. Эти усовершенствования улучшают процесс разработки и повышают производительность приложений.