ReactJS'deki kontrollü bileşenler ve kontrolsüz bileşenler nelerdir? Birbirlerinden nasıl farklılar?
Yanıtlar:
Bu, durum bilgili DOM bileşenleri (form öğeleri) ile ilgilidir ve React belgeleri farkı açıklar:
props
ve bildirdiğinde değişiklikler gibi geri aramaları yoluyla onChange
. Bir ana bileşen, geri aramayı yöneterek ve kendi durumunu yöneterek ve yeni değerleri props olarak kontrollü bileşene geçirerek onu "denetler". Buna "aptalca bir bileşen" de diyebilirsiniz.ref
ihtiyacınız olduğunda bugünkü değeri bulmak için. Bu biraz daha geleneksel HTML'ye benziyor.Çoğu yerel React form bileşeni, hem kontrollü hem de kontrolsüz kullanımı destekler:
// Controlled:
<input type="text" value={value} onChange={handleChange} />
// Uncontrolled:
<input type="text" defaultValue="foo" ref={inputRef} />
// Use `inputRef.current.value` to read the current value of <input>
Çoğu (veya tüm) durumda , kontrollü bileşenleri kullanmalısınız .
state
yerine geçmiyor props
mu?
props
. Kontrolsüz bir bileşen state
, değerin kendisini dahili olarak kontrol etmek için kullanacaktır . Anahtar fark budur.
controlled components
( <input type="text" value="value" onChange={handleChangeCallbackFn} />
) ile bir giriş öğesinin kendi değerlerini işlediği ve ( ) aracılığıyla okunabildiği geleneksel HTML ile refs
çağrılmasıdır . Kontrollü bileşenler kendi durumlarını yönetiyor veya üst bileşenlerinden destek olarak alıyor. uncontrolled components
<value type="text" />
setState
defaultValue
Props'dan geçiren, ancak denetleyiciyi bilgilendiren bir bileşeni nasıl çağırırsınız onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.Kontrollü bileşen, geri çağırma işlevinden değiştirilen değeri alan bileşendir ve kontrolsüz bileşen, DOM'dan olan bileşendir. Örneğin, input değeri değiştirildiğinde Controlled Component'te onChange fonksiyonunu kullanabiliriz ve aynı zamanda DOM gibi ref kullanarak değeri elde edebiliriz.