Angular v14.2.0 представляет новую функцию с именем createApplication
. Функция createApplication
создает экземпляр приложения без начальной загрузки каких-либо компонентов.
Это полезно, когда нужно отделить или отсрочить рендеринг компонентов и/или рендерить несколько корневых компонентов в одном приложении.
С помощью этого API можно создавать типы Пользовательских элементов и привязывать их к среде приложения. Давайте посмотрим на это в действии:
Функция createApplication()
принимает список providers
, которые должны быть доступны корневому компоненту и всем его дочерним элементам, и возвращает обещание, которое возвращает ApplicationRef
. Это позволяет создавать несколько экземпляров компонентов с разными деревьями инжекторов.
Затем мы можем добавить пользовательский элемент на страницу с помощью инжектора среды. Мы также можем уничтожить это приложение, вызвав метод appRef.destroy()
.
Теперь допустим, что у нас есть следующий компонент:
Мы можем создать изолированное приложение и добавить его на нашу страницу:
Во-первых, мы получаем ссылку на NgZone
, чтобы мы могли создать компонент в зоне Angular. Далее мы используем функцию createComponent
, передавая элементы injector
и host
. Последним шагом является регистрация вновь созданной ссылки с использованием экземпляра ApplicationRef
для включения представления компонента в циклы обнаружения изменений.
В этой теме описывается один вариант использования этого API:
История: несколько независимых приложений на одной странице для расширений содержимого CMS · Проблема № 16930 ·…
Я отправляю ... (отметьте одно знаком «x) [ x] запрос функции История / Текущее поведение На основании того, что я понимаю ATM…github.com»
Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!