Resimler birçok uygulamanın büyük bir parçasıdır ve düşük Core Web Vitals puanları da dahil olmak üzere uygulama performans sorunlarına önemli bir katkıda bulunabilir.
Resim optimizasyonu karmaşık bir konu olabilir, ancak Angular bunun çoğunu NgOptimizedImage direktifi ile sizin yerinize halleder.
NOTE: Ayrıntılı kılavuzdaki NgOptimizedImage ile resim optimizasyonu hakkında daha fazla bilgi edinin.
Bu aktivitede, resimlerinizin verimli bir şekilde yüklenmesini sağlamak için NgOptimizedImage'ı nasıl kullanacağınızı öğreneceksiniz.
-
NgOptimizedImage direktifini içe aktarın
NgOptimizedImagedirektifinden yararlanmak için, önce@angular/commonkütüphanesinden içe aktarın ve bileşeninimportsdizisine ekleyin.import { NgOptimizedImage } from '@angular/common'; @Component({ imports: [NgOptimizedImage], ... }) -
src niteliğini ngSrc olarak güncelleyin
NgOptimizedImagedirektifini etkinleştirmek içinsrcniteliğiningSrcile değiştirin. Bu, hem statik resim kaynakları (yanisrc) hem de dinamik resim kaynakları (yani[src]) için geçerlidir.import { NgOptimizedImage } from '@angular/common'; @Component({ template: ` ... <li> Static Image: <img ngSrc="/logo.svg" alt="Angular logo" width="32" height="32" /> </li> <li> Dynamic Image: <img [ngSrc]="logoUrl" [alt]="logoAlt" width="32" height="32" /> </li> ... `, imports: [NgOptimizedImage], }) -
width ve height niteliklerini ekleyin
Yukarıdaki kod örneğinde her resmin hem
widthhem deheightniteliklerine sahip olduğuna dikkat edin. Düzen kaymasını önlemek içinNgOptimizedImagedirektifi, her resimde her iki boyut niteliğini de gerektirir.Resimler için statik bir
heightvewidthbelirleyemediğiniz veya belirlemek istemediğiniz durumlarda, resme kapsayıcı öğesini dolduran bir "arka plan resmi" gibi davranmasını söylemek içinfillniteliğini kullanabilirsiniz:// Container div has 'position: "relative"' <div class="image-container"> <img ngSrc="www.example.com/image.png" fill /> </div>NOTE:
fillresminin düzgün görüntülenmesi için üst öğesininposition: "relative",position: "fixed"veyaposition: "absolute"ile stillendirilmesi gerekir. -
Önemli resimlere öncelik verin
Yükleme performansı için en önemli optimizasyonlardan biri, sayfa yüklendiğinde ekrandaki en büyük grafik öğesi olan "LCP öğesi" olabilecek herhangi bir resme öncelik vermektir. Yükleme sürelerinizi optimize etmek için "hero resminize" veya LCP öğesi olabileceğini düşündüğünüz diğer resimlere
priorityniteliğini eklediğinizden emin olun.<img ngSrc="www.example.com/image.png" height="600" width="800" priority /> -
İsteğe bağlı: Bir resim yükleyici kullanın
NgOptimizedImage, direktifin resimleriniz için URL'leri nasıl biçimlendireceğini belirten bir resim yükleyici belirtmenize olanak tanır. Yükleyici kullanmak, resimlerinizi kısa, göreli URL'lerle tanımlamanızı sağlar:providers: [provideImgixLoader('https://my.base.url/')],Son URL 'https://my.base.url/image.png' olacaktır
<img ngSrc="image.png" height="600" width="800" />Resim yükleyicileri sadece kolaylık sağlamak için değildir --
NgOptimizedImage'ın tüm yeteneklerini kullanmanızı sağlarlar. Bu optimizasyonlar ve popüler CDN'ler için yerleşik yükleyiciler hakkında daha fazla bilgiyi burada bulabilirsiniz.
Bu direktifi iş akışınıza ekleyerek, resimleriniz artık Angular'ın yardımıyla en iyi uygulamalar kullanılarak yükleniyor 🎉
Daha fazla bilgi edinmek isterseniz, NgOptimizedImage belgelerine göz atın. Harika çalışmaya devam edin ve sırada yönlendirmeyi (routing) öğrenelim.