Merhabalar.

Bu yazımızda useState ve useRef Hooklarının kullanımıyla doğan kavramlarımızdan biri olan Controlled ve Uncontrolled Componentler kavramlarına bakacağız.

React’ta, form verilerini işlemek için iki yöntem bulunmaktadır: kontrol edilen (controlled) ve kontrolsuz (uncontrolled) bileşenler. Bu iki yöntem arasındaki farklılıkları anlamak, hangi yöntemin projeniz için daha uygun olduğunu belirlemek için önemlidir.

Kontrol Edilen Bileşenler (Controlled Components)

Kontrol edilen bileşenlerde, form verilerinin durumu, bileşenin içindeki state ile yönetilir. Örneğin, bir giriş alanının değeri, bu giriş alanının onChange olayına bağlı olarak, bileşenin state’ini güncelleyen bir fonksiyon tarafından kontrol edilir. Bu durum, bileşenin durumunun “tek kaynak doğruluğu” olarak kabul edilir. Kontrol edilen bileşenler, form verilerini etkili bir şekilde doğrulamanızı sağlar. Ancak, daha fazla kontrol edilen elemanı form öğesine eklediğinizde, bir bileşendeki state sayısı artar

Kontrolsüz Bileşenler (Uncontrolled Components)

Kontrolsüz bileşenlerde, form verilerinin durumu, DOM tarafından yönetilir. Bu durumda, form öğesinin değerini kontrol etmek için React state’ini kullanmak yerine, React’ın ref özelliğini kullanabiliriz. ref, DOM öğesine bir referans sağlar ve bu referansı kullanarak form öğesinin değerini alabiliriz. 

Kontrol Edilen vs Kontrolsüz Bileşenler

Kontrol edilen bileşenler, form öğelerinin durumunu kontrol etmek için daha fazla kontrol sağlar. Ancak, daha fazla state eklenmesi durumunda bileşenler karmaşıklaşabilir. Kontrolsüz bileşenler ise, daha basit veya izlenebilir olmayan durumlar için kullanılır. Kontrolsüz bileşenler, form öğelerinin değerlerini doğrudan DOM’dan alır ve bu değerleri kontrol etmek için React state’ini kullanmazlar.

Sonuç olarak, hangi bileşen tipini kullanacağınız, projenizin gereksinimlerine ve kişisel tercihlerinize bağlıdır. Kontrol edilen bileşenler, veri kontrolünü daha fazla kontrol etmenizi sağlarken, kontrolsüz bileşenler, daha basit veya izlenebilir olmayan durumlar için daha uygundur.

Bu yazımız bu kadardı. Bir sonraki yazıda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.