Angular, tek sayfalı uygulamalar (SPA'lar) oluşturmak için güçlü bir yol sunan popüler bir ön uç JavaScript çerçevesidir. Angular'da, Bağımlılık Enjeksiyonu (DI), uygulamalarımızdaki bağımlılıkları verimli bir şekilde yönetmemizi sağlayan temel bir özelliktir. Angular'ın bağımlılık enjeksiyon sistemi, belirli özel bağımlılık enjeksiyon gereksinimlerini uygulamak için InjectionTokens kullanır. Bu makalede, InjectionToken'ın ne yaptığını ayrıntılı olarak açıklayacak ve Angular uygulamalarında pratik kullanımını gösterecek örnekler sunacağım.
Bağımlılık enjeksiyonu nedir?
InjectionToken'a dalmadan önce, bağımlılık enjeksiyonunun ne olduğunu anlayalım. Bağımlılık enjeksiyonu, bir nesnenin (örneğin servisler veya yapılandırmalar) bağımlılıklarını başka bir nesneye bu bağımlılıkları sert kodlamadan enjekte etmemize olanak tanıyan bir tasarım desenidir. Bunun faydaları şunlardır:
1. Sürdürülebilirlik: Bileşenlere bağımlılıklar enjekte ederek, bu bağımlılıkları kapsamlı kodu değiştirmeden kolayca değiştirebiliriz. 2. Testlenebilirlik: Bileşenlerin birim testi için simüle edilmiş bağımlılıkları kolayca sağlayabiliriz, ancak bu bağımlılıkların örneklerini gerçekten yaratmadan. 3. Gevşek Bağlanma: Bağımlılık enjeksiyonu, gevşek bağlanma sağlamamıza yardımcı olur ve bireysel bileşenler arasındaki ilişkileri daha esnek hale getirir.
Angular'da bağımlılık enjeksiyonu dahili bir sisteme sahiptir ve Angular'ın bağımlılık enjeksiyon konteyneri, bağımlılıkların yaratılması ve yaşam döngüsünü yönetmekten sorumludur.
Neden bir InjectionToken gerekiyor?
Bazen bağımlılıklar enjekte etmemiz gerekirBir sınıfın örneği değil, yapılandırma öğesi, dizisi veya sınıf dışı başka bir değer。 İşte burada InjectionToken devreye giriyor ve sınıf dışı değerleri bileşenlere veya hizmetlere bağımlılık olarak enjekte etmemize olanak tanıyor.
InjectionToken ne yapar?
InjectionToken'ın rolü, bağımlılıkları tanımlayan bir tanımlayıcı tanımlamaktır. Bu, sadece bir sınıfın örneği değil, bir Angular bileşenine veya servisine herhangi bir değeri enjekte etmemize olanak tanır. Normalde, uygulamada bir yerde bir InjectionToken oluştururuz ve o değeri enjekte etmemiz gereken yerde kullanırız.
İşte InjectionToken'ın ana işlevleri:
1. Benzersiz Tanımlama: InjectionToken, bağımlılıkların benzersizliğini sağlayan benzersiz bir tanımlayıcıdır. Bu, bağımlılıklarda karışıklık veya çatışmaları önlemek için önemlidir. 2. Sınıf Dışı Bağımlılık Enjeksiyonu: InjectionToken, sadece bir sınıf örneğini değil, herhangi bir değeri enjekte etmemize olanak tanır. Bu, yapılandırmalar, sabitler, dizilerle vb. durumlar için faydalıdır. 3. Sağlayıcı yapılandırması: Sağlayıcı yapılandırması sayesinde, Angular'a InjectionToken bağımlılığının bir örneğini nasıl sağlayacağını söyleyebiliriz. Bu, InjectionToken için farklı bağlamlarda farklı değerler sunmamıza olanak tanır.
Şimdi, InjectionToken'ın kullanımını ve rolünü birkaç örnekle detaylandıralım.
Uygulama yapılandırmasını enjekte et
Örneğin, bir uygulama yapılandırmasına URL adresi ve ortam adı enjekte ederiz ve kod şöyledir:
Yapıcı enjeksiyonundan çıkan çıktı şu şekildedir:
Referans:
Bağlantı girişi görünür.
Bağlantı girişi görünür. |