Skip to content

Giriş

  • Angular nedir?
  • Temel Bilgiler
    • Genel Bakış
    • Bileşenler
    • Dinamik Verileri Yönetme
    • Dinamik Şablonları Oluşturma
    • Koşullu İfadeler ve Döngüler
    • Kullanıcı Etkileşimini Yönetme
    • Kod Paylaşımı

Kapsamlı Kılavuzlar

  • Component
    • Bir Componentin Anatomisi
    • Component’leri İçe Aktarma ve Kullanma
    • Component Seçiciler
    • Stil Componentleri
    • Input Özelliklerine Sahip Verileri Kabul Etme
    • Outputları Olan Özel Etkinlikler
    • Ng-content ile İçerik Projeksiyonu
    • Component Ana Öğeleri
    • Component Yaşam Döngüsü
    • Sorgularla Bileşen Alt Öğelerine Başvurma
    • DOM API’lerini Kullanma
    • Inheritance
    • Bileşenleri Programlı Olarak Oluşturma
    • Gelişmiş Bileşen Yapılandırması
  • Şablon Sözdizimi
    • Genel Bakış
    • Text Interpolation
    • Template Statements
    • Bağlamayı Anlama
    • Property Binding
    • En İyi Property Binding Kullanımları
    • Öznitelik Bağlama
    • Sınıf ve stil bağlama
    • Olay Bağlama
    • İki Yönlü Bağlama
    • Yerleşik Kontrol Akışı
    • Şablon Değişkenlerini Anlama
    • Şablon Olarak SVG
  • Directives
    • Directives
    • Öznitelik yönergeleri
    • Yapısal Direktifler
    • API Direktif Bileşimi

Bağımlılık Enjeksiyonu

  • Genel Bakış
  • Başlangıç
  • Dokümanlar
  • Kapsamlı Kılavuzlar
  • Component
  • DOM API’lerini Kullanma

DOM API’lerini Kullanma

Angular, DOM oluşturma, güncelleme ve kaldırma işlemlerinin çoğunu sizin için gerçekleştirir. Ancak, nadiren bir bileşenin DOM’u ile doğrudan etkileşime girmeniz gerekebilir. Bileşenler, bileşenin ana öğesine bir referans almak için ElementRef’i enjekte edebilir:

@Component({...})
export class ProfilePhoto {
  constructor(elementRef: ElementRef) {
    console.log(elementRef.nativeElement);
  }
}

nativeElement özelliği ana Element örneğini referans alır.

Angular’ın afterRender ve afterNextRender işlevlerini, Angular sayfayı oluşturmayı bitirdiğinde çalışan bir oluşturma geri çağrısı kaydetmek için kullanabilirsiniz.

@Component({...})
export class ProfilePhoto {
  constructor(elementRef: ElementRef) {
    afterRender(() => {
      // Focus the first input element in this component.
      elementRef.nativeElement.querySelector('input')?.focus();
    });
  }
}

afterRender ve afterNextRender bir injection context, tipik olarak bir bileşenin kurucusunda çağrılmalıdır.

Mümkün olduğunca doğrudan DOM manipülasyonundan kaçının. Her zaman DOM yapınızı bileşen şablonlarında ifade etmeyi ve bu DOM’u bağlamalarla güncellemeyi tercih edin.

Render callback’leri sunucu tarafı render veya derleme zamanı ön render sırasında asla çalışmaz.

DOM’u asla diğer Angular lifecycle hook içinde doğrudan manipüle etmeyin. Angular, bir bileşenin DOM’unun render callback’leri dışında herhangi bir noktada tamamen render edilmiş olduğunu garanti etmez. Ayrıca, diğer lifecycle hook sırasında DOM’un okunması veya değiştirilmesi, layout thrashing neden olarak sayfa performansını olumsuz etkileyebilir.

Bir bileşenin render edicisini kullanma #

Bileşenler, diğer Angular özelliklerine bağlı olan belirli DOM manipülasyonlarını gerçekleştirmek için bir Renderer2 örneği enjekte edebilir.

Bir bileşenin Renderer2‘ı tarafından oluşturulan tüm DOM öğeleri, o bileşenin style encapsulation katılır.

Bazı Renderer2 API’leri de Angular’ın animasyon sistemine bağlanır. Sentetik animasyon özelliklerini güncellemek için setProperty yöntemini ve sentetik animasyon olayları için olay dinleyicileri eklemek için listen yöntemini kullanabilirsiniz. Ayrıntılar için  Animations kılavuzuna bakın.

Bu iki dar kullanım durumunun dışında, Renderer2 ve yerel DOM API’lerini kullanmak arasında hiçbir fark yoktur. Renderer2 API’leri, sunucu tarafı oluşturma veya derleme zamanı öncesi oluşturma bağlamlarında DOM manipülasyonunu desteklemez.

DOM API’lerini ne zaman kullanmalıyız? #

Angular çoğu render sorununu hallederken, bazı davranışlar hala DOM API’lerini kullanmayı gerektirebilir. Bazı yaygın kullanım durumları şunlardır:

  • Eleman odağını yönetme
  • getBoundingClientRect ile olduğu gibi eleman geometrisini ölçme
  • Bir öğenin metin içeriğini okuma
  • MutationObserver, ResizeObserver veya IntersectionObserver gibi yerel gözlemcileri ayarlama

DOM öğelerini eklemekten, kaldırmaktan ve değiştirmekten kaçının. Özellikle, bir öğenin innerHTML özelliğini asla doğrudan ayarlamayın; bu, uygulamanızı cross-site scripting (XSS) exploits karşı savunmasız hale getirebilir. Angular’ın innerHTML bağları da dahil olmak üzere şablon bağları, XSS saldırılarına karşı korumaya yardımcı olan güvenlik önlemleri içerir. Ayrıntılar için Security guide sayfasına bakın.

Neler hissediyorsun?
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Hala sıkışık? Nasıl yardımcı olabiliriz?

Nasıl yardımcı olabiliriz?

Updated on 4 March 2024
Sorgularla Bileşen Alt Öğelerine BaşvurmaInheritance

Powered by BetterDocs

İçindekiler
  • Bir bileşenin render edicisini kullanma
  • DOM API'lerini ne zaman kullanmalıyız?
Angular TR

Tüm hakları saklıdır