Відповіді:
Це стосується компонентів DOM, що містять статус (елементи форми), і документи React пояснюють різницю:
props
та повідомляє зміни через зворотні виклики , як onChange
. Батьківський компонент "контролює" його, обробляючи зворотний виклик та керуючи своїм власним станом, і передаючи нові значення як властивості контрольованому компоненту. Ви також можете назвати це "німим компонентом".ref
щоб знайти його поточне значення , коли вам це потрібно. Це трохи більше як традиційний HTML.Більшість компонентів рідної форми React підтримують як контрольоване, так і неконтрольоване використання:
// 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>
У більшості (або у всіх) випадках слід використовувати контрольовані компоненти .
state
а не props
?
props
. Неконтрольований компонент буде використовувати state
для внутрішнього контролю самого значення. Це ключова різниця.
controlled components
( <input type="text" value="value" onChange={handleChangeCallbackFn} />
) порівняно з традиційним HTML, де вхідний елемент обробляє їхнє власне значення і може бути прочитаний через refs
викликаний uncontrolled components
( <value type="text" />
). Контрольовані компоненти управляють своїм власним станом за допомогою setState
батьківського компонента або отримують його як пропс.
defaultValue
через реквізит, але який повідомляє контролер onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.