Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 Series 9 (IV) Custom Pipe Pipelines
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:


Отпечатахме имената им върху конструктора за 3 модала.

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 Series 9 (IV) Custom Pipe Pipelines
https://www.itsvse.com/thread-9248-1-1.html

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

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

Angular серия 9 (VII) CSS стил оптика
https://www.itsvse.com/thread-9264-1-1.html

Angular 9 series (VIII) актуализира стойността на дъщерен компонент, като задейства събитие чрез set
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
 Хазяин| Публикувано в 2.02.2021 г. 13:56:30 ч. |
Серия Angular 10 (тринадесета) представя Baidu echart графики
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