У нас был Алекс Рикабо, говорящий о необходимости нового синтаксиса потока управления. Минко Гечев подтвердил план выпуска компонентов на основе Signal в Angular 17 в качестве предварительной версии для разработчиков. Брэндон Робертс рассказал об AnalogJS, и мы наконец-то получили определение «Предварительный просмотр для разработчиков».

Алекс Рикабо: Необходимость в синтаксисе потока управления

Алекс Рикабо, технический руководитель фреймворка Angular, дал подробное объяснение необходимости нового синтаксиса потока управления.
В настоящее время мы используем структурные директивы `*ngIf`, `*ngFor` и `*ngSwitch`. для потока управления.

Angular не выполняет их императивно, как оператор if в JavaScript. Вместо этого они действуют как своего рода метаданные для компилятора. Компилятор разбивает компонент на несколько представлений. Представление представляет собой набор статических элементов DOM. Директивы потока управления действуют как критерий создания представления.

Кроме того, компилятор создает ``ng-template`` и применяет к нему структурные директивы как обычную привязку свойства.

Однако текущий подход имеет некоторые проблемы.

  • Синтаксис не очень удобен для разработчиков.
  • Проверка типа не завершена. Особенно это касается оператора else.
  • Нам нужно использовать «ng-container», если мы хотим иметь директиву, но не хотим создавать отдельный элемент DOM. То же самое верно, когда мы хотим использовать несколько директив. Мы можем применить только один к элементу DOM (или ‹ng-контейнеру›).
  • Наконец, если несколько директив должны работать вместе, это также может стать довольно сложным.

Новый RFC для потока управления исправит эти проблемы. Это будет расширение синтаксиса шаблона.

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

Однако главный вывод заключается в том, что существует вероятность того, что `*ngIf`, `*ngFor` и `*ngSwitch` могут стать устаревшими. Когда и как — тема будущего. Но Angular хочет иметь один способ делать основные вещи.



Минко Гечев на Angular Air

Минко Гечев, руководитель проекта Angular, был гостем подкаста Angular Air. Он подтвердил план выпуска компонентов на основе Signal в Angular 17 в качестве предварительной версии для разработчиков. Библиотека сигналов, представленная в Angular 16, уже станет стабильной.

Компонент на основе сигналов — это новый тип, который работает без zone.js. Рекомендуется начать использовать сигналы в критических для производительности частях вашего приложения.

Невозможно придумать автоматический переход на Сигналы.

Брэндон Робертс на AnalogJS

Брэндон Робертс подвел итоги текущего состояния Analog.js. Эта мета-инфраструктура добавляет такие функции, как Vitest, маршрутизация на основе файлов, маршруты API, а также рендеринг и генерация на стороне сервера из коробки.



Значение «предварительного просмотра для разработчиков» и будущее форм

В последних записях ng-conf мы получили две новые идеи.

Функция, помеченная как «предварительная версия для разработчиков», не является бета-версией. Он полностью функциональный и предварительно стабильный, но может случиться так, что API может измениться.

Во-вторых, пересмотр форм является среднесрочной целью. В настоящее время команда Angular еще не знает, в каком направлении она пойдет. Возможно даже, что Reactive и Template снова сойдутся.