Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 24383|Ответ: 4

[Угловат] Динамически нагруженные компоненты серии Angular 9 (1)

[Скопировать ссылку]
Опубликовано 29.05.2020 16:40:00 | | | |
Динамически нагруженные компоненты серии Angular 9 (1)
https://www.itsvse.com/thread-9238-1-1.html

Угловые параметры передачи 9 серии (2) динамических компонентов
https://www.itsvse.com/thread-9245-1-1.html

Серия Angular 9 (3) подписывается на события динамических компонентов
https://www.itsvse.com/thread-9246-1-1.html

Кастомные трубопроводы Angular 9 Series (IV)
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) форматирует формат суммы валюты
https://www.itsvse.com/thread-9249-1-1.html



Шаблон компонента не всегда будет фиксирован. Вашему приложению, возможно, потребуется загрузить новые компоненты во время выполнения.

Сценарии использования:

1. Загрузка страницы загружает разные компоненты по разным параметрам, показывая разные эффекты
2. Страница состоит из нескольких элементов, не все из них нужно отображать в начале, и после кликов пользователя отображается конкретная информация, например: вкладки вкладок, динамические модальные окна и т.д.

Сценарий использования этой статьи таков: 2, просто представьте,Если вы не используете динамическую загрузку, при открытии основного интерфейса все скрытые компоненты страницы будут загружаны, и все компоненты вызывают соответствующие сервисы интерфейса, часто нам не нужно видеть всю информацию, что является большой тратой ресурсов и может привести к медленной загрузке основного интерфейса, что влияет на пользовательский опыт

Существует два способа динамической загрузки компонентов в ng:

Загрузить уже объявленные компоненты: Используйте ComponentFactoryResolver для рендеринга экземпляра компонента в другой вид компонента;
Динамически создавайте и загружайте компоненты: используйте ComponentFactory и Compiler для создания и рендеринга компонентов
В соответствии с нашими потребностями, отдельные компоненты разрабатываются заранее и должны отображаться на одном и том же компоненте. Так что первый способ соответствует нашим требованиям.

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

  • ViewChild: декоратор свойств, с помощью которого можно получить соответствующие элементы на виде;
  • ViewContainerRef: контейнер представления, на котором можно создавать и удалять компоненты;
  • ComponentFactoryResolver: парсер компонентов, который может рендерить один компонент на виде другого.

Сначала посмотрим на рендеринг: нажмите кнопку modal1 для динамической загрузки компонента modal1 и кнопку modal2 для динамической загрузки компонента modal2.



Сначала мы создаём угловатый проект.

Создаём 4 компонента: index, modal1, modal2 и modal3, из которых modal1 и modal2 являются нашими динамически загруженными компонентами.

Компонент индекса

html:

ts:

Компонент modal1

html:

ts:


Компонент modal2

html:


ts:

компонент modal3

html:


ts:


Мы напечатали их имена на конструкторе для трёх модалей.

Modal1 и Modal2 оба загружаются динамически, только при нажатии кнопки для загрузки запускается конструктор выполнения, Modal3 не использует динамическую загрузку, после загрузки родительского интерфейса конструктор интерфейса Modal3 запускается немедленно.

Таким образом, можно увидеть преимущества динамической загрузки, и она не будет загружаться, если вы её не используете, аналогично ленивой загрузке в C#.

Скачать исходный код:

Туристы, если вы хотите увидеть скрытое содержание этого поста, пожалуйстаОтвет


Ресурсы:Вход по гиперссылке виден.






Предыдущий:Высота настройки CSS: 100% неверное решение
Следующий:Azure DevOps 2020 (1) Первое введение в Microsoft Azure DevOps (TFS)
 Хозяин| Опубликовано 24.07.2020 17:52:58 |
Динамически нагруженные компоненты серии Angular 9 (1)
https://www.itsvse.com/thread-9238-1-1.html

Угловые параметры передачи 9 серии (2) динамических компонентов
https://www.itsvse.com/thread-9245-1-1.html

Серия Angular 9 (3) подписывается на события динамических компонентов
https://www.itsvse.com/thread-9246-1-1.html

Кастомные трубопроводы Angular 9 Series (IV)
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) форматирует формат суммы валюты
https://www.itsvse.com/thread-9249-1-1.html

Angular 9 серия (VI) вызывает нативные переменные и методы JS
https://www.itsvse.com/thread-9254-1-1.html

Angular Series 9 (VII) в стиле CSS
https://www.itsvse.com/thread-9264-1-1.html

Серия Angular 9 (VIII) обновляет значение дочернего компонента, запуская событие через множество
https://www.itsvse.com/thread-9267-1-1.html

Селектор Angular 9 Series (девять) #id применяется на странице
https://www.itsvse.com/thread-9278-1-1.html

Angular 9 серии (10) встраивает vconsole и eruda для отладочных панелей разработчиков
https://www.itsvse.com/thread-9286-1-1.html

Angular 9 Series (XI) 5 способов определить стили
https://www.itsvse.com/thread-9305-1-1.html


Серия Angular 9 (XII) генерирует динамические токены на основе OTP
https://www.itsvse.com/thread-9325-1-1.html
 Хозяин| Опубликовано 02.02.2021 13:56:30 |
Серия Angular 10 (тринадцать) вводит диаграммы Baidu echarts
https://www.itsvse.com/thread-9347-1-1.html

Производственная среда серии Angular 11 (XIV) для отладки
https://www.itsvse.com/thread-9348-1-1.html

Angular 11 Series (XV) приобретает высоту компонента и динамически регулирует высоту
https://www.itsvse.com/thread-9364-1-1.html

Angular серия 11 (16) страниц с разбором исходного кода HTML
https://www.itsvse.com/thread-9376-1-1.html
Опубликовано 26.10.2022 17:27:19 |
Учись!!!!!!!!!!!!!
 Хозяин| Опубликовано 30.04.2025 14:38:35 |
ComponentFactoryResolverУстаревшие

Поправки следующие:
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com