Apa saja komponen terkontrol dan komponen tak terkontrol di ReactJS? Bagaimana mereka berbeda satu sama lain?
103
Apa saja komponen terkontrol dan komponen tak terkontrol di ReactJS? Bagaimana mereka berbeda satu sama lain?
Jawaban:
Ini terkait dengan komponen DOM yang stateful (elemen formulir) dan dokumen React menjelaskan perbedaannya:
props
dan memberitahukan perubahan melalui callback sepertionChange
. Komponen induk "mengontrol" dengan menangani callback dan mengelola statusnya sendiri dan meneruskan nilai baru sebagai props ke komponen yang dikontrol. Anda juga bisa menyebutnya sebagai "komponen bodoh".ref
untuk menemukan nilai saat ini ketika Anda membutuhkannya. Ini sedikit lebih seperti HTML tradisional.Sebagian besar komponen bentuk React asli mendukung penggunaan terkontrol dan tidak terkontrol:
Dalam sebagian besar (atau semua) kasus, Anda harus menggunakan komponen terkontrol .
sumber
state
alih - alihprops
?props
. Komponen yang tidak terkontrol akan digunakanstate
untuk mengontrol nilai itu sendiri secara internal. Inilah perbedaan utamanya.controlled components
(<input type="text" value="value" onChange={handleChangeCallbackFn} />
) vs. HTML tradisional di mana elemen input menangani nilainya sendiri dan dapat dibaca melaluirefs
dipanggiluncontrolled components
(<value type="text" />
). Komponen yang dikontrol mengelola statusnya sendiri melaluisetState
atau mendapatkannya dari komponen induknya sebagai properti.defaultValue
melalui props, tetapi yang memberi tahu controlleronBlur
?<Button onClick={() => console.log("clicked")}>Click</Button>
.sumber
Komponen yang dikontrol adalah komponen yang mendapatkan nilai yang diubah dari fungsi callback dan komponen yang tidak dikontrol adalah komponen yang memiliki nilai dari DOM. Misalnya, ketika nilai input diubah, kita bisa menggunakan fungsi onChange di Controlled Component dan juga kita bisa mendapatkan nilainya menggunakan DOM seperti ref.
sumber