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

Использование inject() и модификаторов для DI в Angular

Начиная с Angular 14, появился новый способ внедрения зависимостей через функцию inject(), которая позволяет получать сервисы без использования конструктора. Это особенно полезно в Standalone Components и ситуациях, когда хочется избавиться от лишних зависимостей в конструкторе.

Создание своей стратегии загрузки в Angular

Недавно наткнулся на собеседовании наткнулся на вопрос, как создать свою стратегию загрузки. В интернете много примеров о том, как это делается для NgModule приложений, но для standalone примеров совсем немного. Что-ж, разберем этот вопрос детальнее.

В чём разница между constructor() и ngOnInit()?

На первый взгляд, оба метода вызываются при создании компонента, но их назначение и место в жизненном цикле приложения существенно различаются.

Различия 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(). Однако, если вы использовали её или библиотеку, которая использует её под капотом, вы могли столкнуться с следующей ошибкой: