Pavel Osin
@osinpaul
Павел Осин. Frontend-разработчик. Заметки о программировании и не только.
🏠 Пенза, Россия.
98 posts
angular
Материалы про фреймворк Angular

Различия toSignal() и toSyncSignal() в Angular

Оба метода (toSignal и toSyncSignal) позволяют преобразовать Observable в Signal, но они имеют разные требования к синхронности и способу обработки начального значения.

Использование ngProjectAs в Angular

Директива ngProjectAs в Angular используется в процессе Content Projection для переопределения селектора контента, который будет проецироваться в слот, определенный в компоненте.

Использование Flux-паттерна в Angular

Flux — это архитектурный паттерн, используемый для создания одностороннего потока данных в приложениях. Он был разработан Facebook и используется для управления состоянием в приложениях, особенно когда они становятся сложными. В Angular для работы со стором можно использовать Flux-подобные библиотеки, такие как NgRx.

Паттерн "Шаблонный метод"

Паттерн "Шаблонный метод" (Template Method) определяет скелет алгоритма в методе, оставляя определение реализации некоторых шагов подклассам. Этот паттерн позволяет подклассам переопределять определенные шаги алгоритма без изменения структуры алгоритма.

Паттерн "Построение - Операции - Проверка"

Паттерн "Построение - Операции - Проверка" (Arrange - Act - Assert, AAA) широко используется при написании тестов для организации тестового кода и повышения его читаемости. Этот паттерн делит тест на три четко определенные секции:

Defer в Angular

С последними улучшениями контроля потока, Angular v17 вводит впечатляющую и очень полезную функцию: блок defer.

Angular Injection Context

Angular в последних версиях представил функцию inject(), которая позволяет получить ссылку на провайдер функциональным способом, а не используя метод Injector.get(). Однако, если вы использовали её или библиотеку, которая использует её под капотом, вы могли столкнуться с следующей ошибкой:

Использование функции createComponent() в Angular

Angular v14.1 добавил новую функцию createComponent. Эта функция может заменить заменяет ComponentFactory, который использовался в предыдущих версиях.

Использование метода  runInInjectionContext() в Angular

В Angular v14 был представлен API EnvironmentInjector.runInContext. Используя эту функцию, разработчик может выполнить любую функцию у требуемом ему контексте. Как результат, в замыкании функции есть метод inject() для внедрения зависимостей. Рассмотрим пример. Допустим, у нас есть компонент GridActionsComponent:

Использование reflectComponentType() в Angular

Функция reflectComponentType() была добавлена в Angular v14.1.0