Angular development enviroments

  • Что такое директива и как создать собственную?

  • Что такое директива, компонент, модуль, сервис, пайп в Angular и для чего они нужны?

  • Расскажите об основных параметрах @NgModule, @Component, @Directive, @Injectable, @Pipe

  • Что такое динамические компоненты и как их можно использовать в Angular?

  • Как применить анимацию к компонентам?

Angular render lifecycle and core environments
  • Объясните механизм загрузки (bootstrap) Angular-приложения в браузере?

  • Как происходит взаимодействие компонентов в Angular (опишите components view)?

  • Каков жизненный цикл у компонентов?

  • Что такое Shadow DOM и как с ним работать в Angular?

  • Что такое Data Binding и какие проблемы связанные с ним вы знаете?

  • Как вы используете одностороннюю и двухстороннюю привязку данных?

  • В чем преимущества и недостатки Regular DOM (Angular) перед Virtual DOM (React)?

  • Что такое ngZone?

  • Как обновлять представление, если ваша модель данных обновляется вне 'зоны'?

*Используя метод ApplicationRef.prototype.tick, который запустит change detection на всем дереве компонентов.

*Используя метод NgZone.prototype.run, который также запустит change detection на всем дереве.

*Используя метод ChangeDetectorRef.prototype.detectChanges, который запустит change detection на текущем компоненте и дочерних.

  • Что такое EventEmmiter и как подписываться на события?

  • Что такое Change Detection, как работает Change Detection Mechanism?

Change Detection

Change Detection - процесс синхронизации модели с представлением. В Angular поток информации однонаправленный, даже при использованииngModelдля реализации двустороннего связывания, которая является синтаксическим сахаром поверх однонаправленного потока.

Change Detection Mechanism

Change Detection Mechanism - продвигается только вперед и никогда не оглядывается назад, начиная с корневого (рут) компонента до последнего. В этом и есть смысл одностороннего потока данных. Архитектура Angular приложения очень проста — дерево компонентов. Каждый компонент указывает на дочерний, но дочерний не указывает на родительский. Односторонний поток устраняет необходимость$digestцикла.

  • Какие существуют стратегии обнаружения изменений?

Всего есть две стратегии - Default и OnPush. Если все компоненты используют первую стратегию, то Zone проверяет все дерево независимо от того, где произошло изменение. Чтобы сообщить Angular, что мы будем соблюдать условия повышения производительности нужно использовать стратегию обнаружения изменений OnPush. Это сообщит Angular, что наш компонент зависит только от входных данных и любой объект, который передается ему должен считаться immutable. Это все построено на принципе автомата Мили, где текущее состояние зависит только от входных значений.

  • Сколько Change Detector'ов может быть во всем приложении?

У каждого компонента есть свой Change Detector, все Change Detector'ы наследуются от AbstractChangeDetector.

  • Основное отличие constructor от ngOnInit?

Конструктор сам по себе является фичей самого класса, а не Angular. Основная разница в том, что Angular запустит ngOnInit, после того, как закончит настройку компонента, то есть, это сигнал, благодаря которому свойства @Input() и другие байндинги, и декорируемые свойства доступны в ngOnInit, но не определены внутри конструктора, по дизайну.

Angular data flow
  • Какими способами можно взаимодействовать API бекенда, что требуется для проксирования запросов?
  • Что такое HTTP Interceptors?

Interceptor (перехватчик) - просто причудливое слово для функции, которая получает запросы / ответы до того, как они будут обработаны / отправлены на сервер. Нужно использовать перехватчики, если имеет смысл предварительно обрабатывать многие типы запросов одним способом.

  • Как использовать Json Web Tokens для аутентификации при разработке на Angular?

Angular routing

  • Что такое роутинг и как его создать в Angular?
  • Каков жизненный цикл у Angular Router?
  • Что такое ленивая загрузка (Lazy-loading) и для чего она используется?
  • В чем разница между Routing и Navigation?
  • Как загрузить данные до того как активируется роут?

Angular Forms

  • Что такое FormGroup и FormControl и для чего они используются?
  • Что такое реактивные формы в Angular?
  • Как применять валидацию для простых и сложных форм?

Build environments

  • В чем разница между Angular CLI и Webpack Development Environment?
  • Что такое JIT и AOT, в чем их отличия и каковы сферы применения?

Test development

  • Что такое Unit-тестирование, интеграционное, e2e-тестирование (End-to-End) и как оно применяется в Angular?
  • Что такое Karma, Jest, Jasmine (зачем их используют совместно при разработке на Angular)?
  • Как протестировать входные параметры и всплывающие события компонентов?

results matching ""

    No results matching ""