Angular Form İşlemleri: Template-driven ve Reactive Formlar

Angular, uygulama geliştiricilerinin kullanıcı formları oluşturmasına yardımcı olmak için iki farklı yaklaşım sunar: Template-driven formlar ve Reactive formlar. Her iki yaklaşımın da avantajları ve dezavantajları vardır. Şimdi bu iki yaklaşımı ayrıntılı bir şekilde inceleyelim.

1. Template-Driven Formlar

Template-driven formlar, Angular’da form oluşturmanın en basit yoludur. HTML şablon içinde doğrudan form elemanlarıyla çalışmayı tercih edenler için uygundur.

Özellikleri:

Two-Way Data Binding: NgModel kullanılarak iki yönlü veri bağlama yapısını kullanır. Bu, form elemanının değeri ve bileşenin ilgili özelliği arasında otomatik bir senkronizasyon sağlar.

Minimal Kod: Template-driven formlarda, çoğunlukla şablon koduyla ilgilenirsiniz. Bu, basit formlar için hızlı ve kolay bir yol sunar.

Otomatik Form Modeli Oluşturma: Angular, şablonu kullanarak otomatik olarak form modelini oluşturur.

Şimdi template-driven form kullanarak basit bir register uygulaması yapalım.

Modül Tanımlamaları (app.module.ts)

HTML Şablonu (app.component.html)

Bileşen Kodu (app.component.ts)

Servis (user.service.ts)

Bu örnekte neler yaptık?

app.module.ts: FormsModule’u ekledik ve servisimizi sağladık.

app.component.html: Template-driven form oluşturduk. Doğrulama mesajlarını form alanlarının geçerli olup olmadığına göre gösterdik.

app.component.ts: onSubmit metoduyla form gönderildiğinde servisimizi çağırdık.

user.service.ts: Basit bir HTTP istemci servisi oluşturduk. 

2. Reactive Formlar

Reactive formlar, daha karmaşık ve özelleştirilebilir form ihtiyaçları için önerilen yaklaşımdır. Reactive formlarla, bileşen kodu üzerinden programatik olarak form kontrolünü tamamen ele alabilirsiniz.

Özellikleri:

Esneklik: Formunuzu programatik olarak oluşturabileceğiniz için kompleks formlarda daha çok esneklik sağlar.

Değişiklikleri Takip: FormGrup ve FormControl gibi yapılar, formdaki değişiklikleri dinlemek ve tepki vermek için kullanılır.

Erişim: Reactive formlar, formun her bir parçasına doğrudan erişim sağlar.

Validatorler: Reactive formlar, özel validatorler oluşturarak veya Angular’ın sağladığı validatorleri kullanarak form girişlerini doğrulamak için kullanılır.

Şimdi, yukarıda template-driven formlar ile yaptığımız örneğin aynısını burada reactive formlar ile yapalım.

Modül Tanımlamaları (app.module.ts)

HTML Şablonu (app.component.html)

Bileşen Kodu (app.component.ts)

Servis (user.service.ts)

Bu örnekte neler yaptık?

app.module.ts: ReactiveFormsModule’u projeye ekledik.

app.component.html: Reactive form kullanarak şablonu oluşturduk. Doğrulama hatalarını kontrol etmek için formGroup ve formControlName direktiflerini kullandık.

app.component.ts: FormBuilder kullanarak formumuzu oluşturduk ve doğrulamaları ekledik. onSubmit metodu ile formun geçerli olup olmadığını kontrol ediyoruz.

user.service.ts: Basit bir HTTP istemci servisi oluşturduk.

Hangisini Seçmeliyim?

Eğer basit bir form oluşturacaksanız ve kod tarafında çok fazla kontrol ve özelleştirmeye ihtiyaç duymuyorsanız, Template-driven formlar idealdir.

Fakat formunuzun karmaşık olacağını, özel doğrulamalara veya dinamik form alanlarına ihtiyaç duyacağınızı düşünüyorsanız, Reactive yaklaşımını tercih etmelisiniz.

Umarım “Angular Form İşlemleri: Template-driven ve Reactive Formlar” başlıklı yazım sizin için faydalı olmuştur.

Şu yazılar da ilginizi çekebilir.

Angular HTTP İstekleri ve RxJS

Yeni bir yazımda görüşmek üzere.

Happy coding!

Yorum Yazın