Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 24383|Svar: 4

[Kantig] Angular 9-serie (1) dynamiskt laddade komponenter

[Kopiera länk]
Publicerad på 2020-05-29 16:40:00 | | | |
Angular 9-serie (1) dynamiskt laddade komponenter
https://www.itsvse.com/thread-9238-1-1.html

Parametrar för transmissionen av Angular 9 series (2) dynamiska komponenter
https://www.itsvse.com/thread-9245-1-1.html

Angular 9-serie (3) prenumererar på dynamiska komponenthändelser
https://www.itsvse.com/thread-9246-1-1.html

Angular 9-seriens (IV) specialrörledningar
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) formaterar storleksvalutaformatet
https://www.itsvse.com/thread-9249-1-1.html



Mallen för en komponent är inte alltid fast. Din app kan behöva ladda några nya komponenter under körning.

Användningsscenarier:

1. Sidladdning laddar olika komponenter enligt olika parametrar, vilket visar olika effekter
2. Sidan består av flera element, inte alla behöver visas i början, och specifik information visas efter att användaren klickat, såsom: flikflikar, dynamiska popup-modalrutor med mera.

Användningsscenariot i denna artikel är 2, tänk dig bara,Om du inte använder dynamisk laddning, när du öppnar huvudgränssnittet, kommer alla dolda komponenter på sidan att laddas och alla komponenter anropar sina motsvarande gränssnittstjänster, ofta behöver vi inte se all information, vilket är ett stort resursslöseri och kan också göra att huvudgränssnittet laddas långsamt, vilket påverkar användarupplevelsen

Det finns två sätt att dynamiskt ladda komponenter i ng:

Ladda redan deklarerade komponenter: Använd ComponentFactoryResolver för att rendera en instans av en komponent till en annan komponentvy;
Skapa och ladda komponenter dynamiskt: Använd ComponentFactory och Compiler för att skapa och rendera komponenter
Enligt våra behov utvecklas de enskilda komponenterna i förväg och måste visas på samma komponent. Så det första sättet uppfyller våra krav.

För att dynamiskt ladda komponenter med ComponentFactoryResolver behöver du förstå följande koncept:

  • ViewChild: Property decorator, genom vilken du kan få motsvarande element i vyn;
  • ViewContainerRef: En vybehållare där komponenter kan skapas och raderas;
  • ComponentFactoryResolver: En komponentparser som kan rendera en komponent på en vy av en annan.

Först, låt oss titta på renderingarna, klicka på modal1-knappen för att dynamiskt ladda modal1-komponenten, och klicka på modal2-knappen för att dynamiskt ladda modal2-komponenten.



Först skapar vi ett vinkelprojekt.

Skapa fyra komponenter, nämligen index, modal1, modal2 och modal3, varav modal1 och modal2 är våra dynamiskt laddade komponenter.

Indexkomponent

html:

TS:

modal1-komponent

html:

TS:


Modal2-komponent

html:


TS:

modal3-komponent

html:


TS:


Vi skrev ut deras namn på konstruktören för 3 modaler.

modal1 och modal2 laddas båda dynamiskt, endast när knappen trycks för att ladda triggas exekveringskonstruktorn, modal3 använder inte dynamisk laddning, efter att föräldragränssnittet har laddats kommer modal3-gränssnittets konstruktör att köras omedelbart.

På detta sätt kan du se fördelarna med dynamisk laddning, och den kommer inte att laddas om du inte använder den, liknande lat laddning i C#.

Källkodsnedladdning:

Turister, om ni vill se det dolda innehållet i detta inlägg, snällaSvar


Resurser:Inloggningen med hyperlänken är synlig.






Föregående:CSS-inställningshöjd: 100% ogiltig lösning
Nästa:Azure DevOps 2020 (1) Första introduktion till Microsoft Azure DevOps (TFS)
 Hyresvärd| Publicerad på 2020-07-24 17:52:58 |
Angular 9-serie (1) dynamiskt laddade komponenter
https://www.itsvse.com/thread-9238-1-1.html

Parametrar för transmissionen av Angular 9 series (2) dynamiska komponenter
https://www.itsvse.com/thread-9245-1-1.html

Angular 9-serie (3) prenumererar på dynamiska komponenthändelser
https://www.itsvse.com/thread-9246-1-1.html

Angular 9-seriens (IV) specialrörledningar
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Series (V) formaterar storleksvalutaformatet
https://www.itsvse.com/thread-9249-1-1.html

Vinkelrad 9 (VI) anropar inbyggda JS-variabler och metoder
https://www.itsvse.com/thread-9254-1-1.html

Angular 9-serie (VII) CSS-liknande teleskop
https://www.itsvse.com/thread-9264-1-1.html

Angular 9-serien (VIII) uppdaterar värdet på en barnkomponent genom att trigga en händelse via en mängd
https://www.itsvse.com/thread-9267-1-1.html

Angular 9 Series (nio) #id väljare applicerad på sidan
https://www.itsvse.com/thread-9278-1-1.html

Angular 9-serien (10) bäddar in vconsole och eruda utvecklar-felsökningspaneler
https://www.itsvse.com/thread-9286-1-1.html

Angular 9-serien (XI) 5 sätt att definiera stilar
https://www.itsvse.com/thread-9305-1-1.html


Angular 9-serien (XII) genererar dynamiska tokens baserade på OTP:er
https://www.itsvse.com/thread-9325-1-1.html
 Hyresvärd| Publicerad på 2021-02-02 13:56:30 |
Angular 10-serien (tretton) introducerar Baidu echarts-diagram
https://www.itsvse.com/thread-9347-1-1.html

Produktionsmiljö för Angular 11-serien (XIV) för felsökning
https://www.itsvse.com/thread-9348-1-1.html

Angular 11-serien (XV) får komponenthöjd och justerar dynamiskt höjden
https://www.itsvse.com/thread-9364-1-1.html

Angular 11-serie (16) sidparsning HTML-källkod
https://www.itsvse.com/thread-9376-1-1.html
Publicerad på 2022-10-26 17:27:19 |
Lär dig!!!!!!!!!!!!!
 Hyresvärd| Publicerad på 2025-04-30 14:38:35 |
ComponentFactoryResolverFöråldrad

Ändringarna är följande:
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com