Bye Bye Entry Components (Angular 9 e successivi)

Blog

Di recente stavo esaminando le informazioni sulla versione ufficiale di Angular 9 e ho scoperto che il team di Angular ha deciso di deprecare l'array entryComponents che era una parte cruciale di NgModule per la creazione di componenti dinamici come modali, banner pubblicitari ecc. Se vuoi leggere della sua deprecazione, può controllarlo qui .



Nelle versioni precedenti ad Angular 9, se cercavamo di creare un componente che non fa parte di entryComponents in modo dinamico, ottenevamo il seguente errore.

Nessuna fabbrica di componenti trovata per ModalComponent. L'hai aggiunto a @NgModule.entryComponents?



Per capirlo, dobbiamo capire perché Angular aveva bisogno dell'array entryComponents separatamente prima di Angular 9 per creare questi componenti in modo dinamico. Le ragioni sono le seguenti.

  1. Se leggiamo attentamente l'errore, si lamenta di una fabbrica mancante. I componenti che avevano il loro selettore nei modelli, Angular utilizzati per creare NgFactories.
  2. Poiché i componenti dinamici sono stati creati con ComponentFactoryResolver senza avere alcun selettore nel modello, Angular non è stato utilizzato per creare Factory per loro.
  3. entryComponents era un array di componenti che veniva usato per informare Angular su tali componenti, in modo che potesse fornire il loro NgFactory in fase di runtime.

Quindi ora capiamo, perché Angular aveva bisogno dell'array entryComponents fino alla versione 8. Ma cosa è successo dalla versione 9 che ha reso inutile l'utilizzo dell'array entryComponents?



#web #javascript #framework #typescript #angular

medium.com

Bye Bye Entry Components (Angular 9 e successivi)

Perché i componenti di ingresso sono stati deprecati da Angular. Recentemente stavo guardando le informazioni ufficiali sulla versione di Angular 9 e ho scoperto che il team di Angular ha deciso di deprecare l'array entryComponents che era una parte cruciale di NgModule per la creazione di componenti dinamici come modali, banner pubblicitari ecc.