Как работает маршрутизатор Angular

Резюмируя статью “The 7-step process of Angular router navigation

Работу маршрутизатора мы можем разбить на 7 этапов:

  1. Parse: разбирает  сроку запроса
  2. Redirect: выполняет перенаправление (если нужно)
  3. Identify: определяет стейт
  4. Guard: запускает гарды конкретного стейта
  5. Resolve: резолвит данные стейта
  6. Activate: активирует компонент
  7. Manage: слушает изменения, чтобы повторить процесс сначала

Давайте рассмотрим каждый этап более подробно.

Continue reading

View encapsulation и другие опции компилятора

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

platformBrowserDynamic().bootstrapModule(AppModule);

Continue reading

Новое в Angular4.3

  • HttpClient – принципиально новый клиент, который переехал из отдельного модуля в подсекцию common (‘@angular/common/http‘):
    • позволяет получить данные сразу в JSON
    • типизировать возвращаемые данные вывод
    • появляются интерсепторы
    • задание дефолтных заголовков (например токена авторизации)
    • подписаться события прогресса
  • Новые гарды роутера: GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd, NavigationStart
  • Опция для отключения анимации в детях
  • Специальный CSS селектор ::ng-deep, который является альтернативой >>>

Angular: Что такое forwardRef?

Мы иногда встречаем в коде:

и сразу не понятно, что это магическая функция forwardRef. На самом деле все просто: forwardRef – это функция-обертка. Зачем она нужна? Чтобы мы могли задавать значением свойства сущности, которые объявлены ниже (иначе будет ошибка):

Также можно глянуть в исходники, и убедиться что это просто метод-обертка: