Angular v14.2.0 представляет новую функцию с именем createApplication. Функция createApplication создает экземпляр приложения без начальной загрузки каких-либо компонентов.

Это полезно, когда нужно отделить или отсрочить рендеринг компонентов и/или рендерить несколько корневых компонентов в одном приложении.

С помощью этого API можно создавать типы Пользовательских элементов и привязывать их к среде приложения. Давайте посмотрим на это в действии:

Функция createApplication() принимает список providers, которые должны быть доступны корневому компоненту и всем его дочерним элементам, и возвращает обещание, которое возвращает ApplicationRef. Это позволяет создавать несколько экземпляров компонентов с разными деревьями инжекторов.

Затем мы можем добавить пользовательский элемент на страницу с помощью инжектора среды. Мы также можем уничтожить это приложение, вызвав метод appRef.destroy().

Теперь допустим, что у нас есть следующий компонент:

Мы можем создать изолированное приложение и добавить его на нашу страницу:

Во-первых, мы получаем ссылку на NgZone, чтобы мы могли создать компонент в зоне Angular. Далее мы используем функцию createComponent, передавая элементы injector и host. Последним шагом является регистрация вновь созданной ссылки с использованием экземпляра ApplicationRef для включения представления компонента в циклы обнаружения изменений.

В этой теме описывается один вариант использования этого API:



Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!