Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24383|Yanıt: 4

[Angular] Angular 9 Serisi (1) Dinamik Yüklü Bileşenler

[Bağlantıyı kopyala]
Yayınlandı 29.05.2020 16:40:00 | | | |
Angular 9 Serisi (1) Dinamik Yüklü Bileşenler
https://www.itsvse.com/thread-9238-1-1.html

Açısal 9 serisi (2) dinamik bileşen iletim parametreleri
https://www.itsvse.com/thread-9245-1-1.html

Angular 9 serisi (3) dinamik bileşen olaylarına abone olur
https://www.itsvse.com/thread-9246-1-1.html

Angular 9 Serisi (IV) Özel Boru Hatları
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Serisi (V), miktar para birimi formatını biçimlendirir
https://www.itsvse.com/thread-9249-1-1.html



Bir bileşenin şablonu her zaman sabit olmayacaktır. Uygulamanızın çalışma zamanı sırasında bazı yeni bileşenleri yüklemesi gerekebilir.

Kullanım Senaryoları:

1. Sayfa yükleme, farklı parametrelere göre farklı bileşenleri yükler ve farklı etkiler gösterir
2. Sayfa birden fazla öğeden oluşur, hepsinin başta görüntülenmesi gerekmez ve kullanıcı tıkladıktan sonra belirli bilgiler gösterilir, örneğin: sekme sekmeleri, dinamik açılır modal kutular vb.

Bu makalenin kullanım senaryosu 2, hayal edin,Dinamik yükleme kullanmazsanız, ana arayüzü açtığınızda sayfanın tüm gizli bileşenleri yüklenir ve tüm bileşenler ilgili arayüz hizmetlerini çağırır, çoğu zaman tüm bilgileri görmemize gerek kalmaz, bu büyük bir kaynak israfıdır ve ana arayüzün yavaş yüklenmesine neden olabilir, bu da kullanıcı deneyimini etkileyebilir

ng'de bileşenleri dinamik olarak yüklemenin iki yolu vardır:

Zaten bildirilen bileşenleri yükleyin: ComponentFactoryResolver kullanarak bir bileşenin örneğini başka bir bileşen görünümüne render edin;
Bileşenleri dinamik olarak oluşturun ve yükleyin: Bileşenleri oluşturmak ve renderlemek için ComponentFactory ve Derleyici kullanın
İhtiyaçlarımıza göre, bireysel bileşenler önceden geliştirilir ve aynı bileşende sergilenmesi gerekir. Yani ilk yol bizim gereksinimlerimizi karşılıyor.

ComponentFactoryResolver kullanarak bileşenleri dinamik olarak yüklemek için aşağıdaki kavramları anlamanız gerekir:

  • ViewChild: Özellik dekoratörü, böylece görünüme karşılık gelen öğeleri elde edebilirsiniz;
  • ViewContainerRef: Bileşenlerin oluşturulup silinebileceği bir görünüm konteyneri;
  • ComponentFactoryResolver: Bir bileşeni diğerinin görünümünde render edebilen bir bileşen ayrıştırıcıdır.

Öncelikle, renderasyonlara bakalım, modal1 bileşenini dinamik olarak yüklemek için modal1 düğmesine tıklayalım ve modal2 bileşenini dinamik olarak yüklemek için modal2 düğmesine tıklayalım.



İlk olarak, açısal bir proje oluşturuyoruz.

4 bileşen oluşturun: index, modal1, modal2 ve modal3; bunlardan modal1 ve modal2 dinamik olarak yüklenmiş bileşenlerimizdir.

Endeks bileşeni

html:

TS:

modal1 bileşeni

html:

TS:


modal2 bileşeni

html:


TS:

modal3 bileşeni

html:


TS:


Yapımcıya isimlerini 3 modal için bastık.

modal1 ve modal2 dinamik olarak yüklenir, ancak yükleme düğmesine tıklandığında yürütme oluşturucu tetiklenir, modal3 dinamik yükleme kullanmaz, ana arayüz yüklendikten sonra modal3 arayüz oluşturucu hemen çalıştırılır.

Bu şekilde, dinamik yüklemenin avantajlarını görebilirsiniz ve kullanmazsanız yükleme yüklenmez, tıpkı C#'daki tembel yüklemeye benzer.

Kaynak kodu indirme:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt


Kaynaklar:Bağlantı girişi görünür.






Önceki:CSS ayar yüksekliği: %100 geçersiz çözüm
Önümüzdeki:Azure DevOps 2020 (1) First Introduction to Microsoft Azure DevOps (TFS)
 Ev sahibi| Yayınlandı 24.07.2020 17:52:58 |
Angular 9 Serisi (1) Dinamik Yüklü Bileşenler
https://www.itsvse.com/thread-9238-1-1.html

Açısal 9 serisi (2) dinamik bileşen iletim parametreleri
https://www.itsvse.com/thread-9245-1-1.html

Angular 9 serisi (3) dinamik bileşen olaylarına abone olur
https://www.itsvse.com/thread-9246-1-1.html

Angular 9 Serisi (IV) Özel Boru Hatları
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 Serisi (V), miktar para birimi formatını biçimlendirir
https://www.itsvse.com/thread-9249-1-1.html

Açısal 9 serisi (VI) yerel JS değişkenlerini ve yöntemlerini çağırır
https://www.itsvse.com/thread-9254-1-1.html

Açısal 9 serisi (VII) CSS tarzı dürbün
https://www.itsvse.com/thread-9264-1-1.html

Angular 9 serisi (VIII), bir olayı set aracılığıyla tetikleyerek bir alt bileşenin değerini günceller
https://www.itsvse.com/thread-9267-1-1.html

Sayfada uygulanan Angular 9 Serisi (dokuz) #id seçici
https://www.itsvse.com/thread-9278-1-1.html

Angular 9 serisi (10) vconsole ve eruda geliştirici hata ayıklama panellerini gömüyor
https://www.itsvse.com/thread-9286-1-1.html

Angular 9 Serisi (XI) Stilleri Tanımlamanın 5 Yolu
https://www.itsvse.com/thread-9305-1-1.html


Angular 9 serisi (XII), OTP'lere dayalı dinamik jetonlar üretir
https://www.itsvse.com/thread-9325-1-1.html
 Ev sahibi| Yayınlandı 2.02.2021 13:56:30 |
Angular 10 serisi (on üç) Baidu echarts grafiklerini tanıtıyor
https://www.itsvse.com/thread-9347-1-1.html

Hata ayıklama için Angular 11 serisi (XIV) üretim ortamı
https://www.itsvse.com/thread-9348-1-1.html

Angular 11 Serisi (XV) bileşen yüksekliği kazanır ve yüksekliği dinamik olarak ayarlar
https://www.itsvse.com/thread-9364-1-1.html

Angular 11 serisi (16) sayfa ayrıştırma HTML kaynak kodu
https://www.itsvse.com/thread-9376-1-1.html
Yayınlandı 26.10.2022 17:27:19 |
Öğrenin!!!!!!!!!!!!!
 Ev sahibi| Yayınlandı 30.04.2025 14:38:35 |
ComponentFactoryResolverKullanımdan kaldırıldı

Değişiklikler şunlardır:
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com