Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 24383|Odpoveď: 4

[Angular] Dynamicky zaťažené komponenty série Angular 9 (1)

[Kopírovať odkaz]
Zverejnené 29. 5. 2020 16:40:00 | | | |
Dynamicky zaťažené komponenty série Angular 9 (1)
https://www.itsvse.com/thread-9238-1-1.html

Dynamické prenosové parametre pre sériu Angular 9 (2)
https://www.itsvse.com/thread-9245-1-1.html

Séria Angular 9 (3) podporuje dynamické komponentové udalosti
https://www.itsvse.com/thread-9246-1-1.html

Angular 9 Series (IV) Custom Pipe potrubia
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) formátuje formát sumy meny
https://www.itsvse.com/thread-9249-1-1.html



Šablóna komponentu nemusí byť vždy pevne stanovená. Vaša aplikácia možno bude musieť počas behu načítať nové komponenty.

Scenáre použitia:

1. Načítavanie stránok načítava rôzne komponenty podľa rôznych parametrov, pričom sa zobrazujú rôzne efekty
2. Stránka je zložená z viacerých prvkov, nie všetky musia byť zobrazené na začiatku, a po kliknutí používateľa sa zobrazia konkrétne informácie, ako napríklad: záložky, dynamické vyskakovacie modálne okná a podobne.

Scenár použitia tohto článku je 2, len si predstavte,Ak nepoužívate dynamické načítavanie, pri otvorení hlavného rozhrania sa načítajú všetky skryté komponenty stránky a všetky komponenty volajú svoje príslušné rozhranie, často nemusíme vidieť všetky informácie, čo je veľká strata zdrojov a môže to tiež spôsobiť, že hlavné rozhranie sa načíta pomaly, čo ovplyvní používateľský zážitok

Existujú dva spôsoby, ako dynamicky načítať komponenty v ng:

Načítať už deklarované komponenty: Použite ComponentFactoryResolver na vykreslenie inštancie komponentu do iného pohľadu komponentu;
Dynamicky vytvárajte a načítavajte komponenty: Použite ComponentFactory a Compiler na tvorbu a renderovanie komponentov
Podľa našich potrieb sú jednotlivé komponenty vyvíjané vopred a musia byť zobrazené na tom istom komponente. Takže prvý spôsob spĺňa naše požiadavky.

Na dynamické načítanie komponentov pomocou ComponentFactoryResolver musíte rozumieť nasledujúcim konceptom:

  • ViewChild: Property decorator, cez ktorý môžete získať zodpovedajúce prvky na pohľade;
  • ViewContainerRef: View-kontajner, v ktorom je možné vytvárať a mazať komponenty;
  • ComponentFactoryResolver: Parser komponentov, ktorý dokáže vykresliť jednu komponentu v zobrazení inej.

Najprv sa pozrime na renderovania, kliknite na tlačidlo modal1 na dynamické načítanie komponentu modal1 a kliknite na tlačidlo modal2 na dynamické načítanie komponentu modal2.



Najprv vytvoríme angular projekt.

Vytvorte 4 komponenty, konkrétne index, modal1, modal2 a modal3, z ktorých modal1 a modal2 sú naše dynamicky načítané komponenty.

Indexová zložka

html:

TS:

Modal1 komponent

html:

TS:


Modal2 komponent

html:


TS:

Modal3 komponent

html:


TS:


Ich mená sme vytlačili na konštruktor pre 3 modály.

Modal1 aj Modal2 sa dynamicky načítavajú, iba keď sa klikne tlačidlo na načítanie, spustí sa vykonávací konštruktor, Modal3 nepoužíva dynamické načítavanie, po načítaní rodičovského rozhrania sa konštruktér rozhrania Modal3 spustí okamžite.

Týmto spôsobom vidíte výhody dynamického načítavania, ktoré sa nenačíta, ak ho nepoužívate, podobne ako lenivé načítavanie v C#.

Stiahnutie zdrojového kódu:

Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím.Odpoveď


Zdroje:Prihlásenie na hypertextový odkaz je viditeľné.






Predchádzajúci:Výška nastavenia CSS: 100% neplatné riešenie
Budúci:Azure DevOps 2020 (1) First Introduction to Microsoft Azure DevOps (TFS)
 Prenajímateľ| Zverejnené 24. 7. 2020 17:52:58 |
Dynamicky zaťažené komponenty série Angular 9 (1)
https://www.itsvse.com/thread-9238-1-1.html

Dynamické prenosové parametre pre sériu Angular 9 (2)
https://www.itsvse.com/thread-9245-1-1.html

Séria Angular 9 (3) podporuje dynamické komponentové udalosti
https://www.itsvse.com/thread-9246-1-1.html

Angular 9 Series (IV) Custom Pipe potrubia
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) formátuje formát sumy meny
https://www.itsvse.com/thread-9249-1-1.html

Angular 9 series (VI) volá natívne JS premenné a metódy
https://www.itsvse.com/thread-9254-1-1.html

Angular 9 series (VII) v štýle CSS
https://www.itsvse.com/thread-9264-1-1.html

Angular 9 séria (VIII) aktualizuje hodnotu podkomponentu spustením udalosti cez set
https://www.itsvse.com/thread-9267-1-1.html

Angular 9 Series (deväť) #id selektor aplikovaný na stránku
https://www.itsvse.com/thread-9278-1-1.html

Angular 9 séria (10) vkladá panely na ladenie vývojárov vconsole a eruda
https://www.itsvse.com/thread-9286-1-1.html

Angular 9 Series (XI) 5 spôsobov, ako definovať štýly
https://www.itsvse.com/thread-9305-1-1.html


Séria Angular 9 (XII) generuje dynamické tokeny na základe OTP
https://www.itsvse.com/thread-9325-1-1.html
 Prenajímateľ| Zverejnené 2. 2. 2021 13:56:30 |
Séria Angular 10 (trinásť) predstavuje Baidu echarts mapy
https://www.itsvse.com/thread-9347-1-1.html

Produkčné prostredie série Angular 11 (XIV) na ladenie
https://www.itsvse.com/thread-9348-1-1.html

Angular 11 Series (XV) získava výšku komponentov a dynamicky upravuje výšku
https://www.itsvse.com/thread-9364-1-1.html

Source code HTML kódu pre sériu Angular 11 (16) stránkové parsovanie
https://www.itsvse.com/thread-9376-1-1.html
Zverejnené 26. 10. 2022 17:27:19 |
Učte sa!!!!!!!!!!!!!
 Prenajímateľ| Zverejnené 30. 4. 2025 14:38:35 |
ComponentFactoryResolverZastarané

Zmeny sú nasledovné:
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com