Respostas:
Isso está relacionado aos componentes DOM com estado (elementos do formulário) e os documentos do React explicam a diferença:
props
e notifica as alterações por meio de retornos de chamada como onChange
. Um componente pai o "controla" manipulando o retorno de chamada e gerenciando seu próprio estado e passando os novos valores como acessórios para o componente controlado. Você também pode chamar isso de "componente burro".ref
para encontrar seu valor atual quando necessário. É um pouco mais parecido com o HTML tradicional.A maioria dos componentes do formulário React nativos suportam o uso controlado e não controlado:
// 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>
Na maioria (ou em todos) os casos, você deve usar componentes controlados .
state
vez de props
?
props
. Um componente não controlado seria usado state
para controlar o próprio valor internamente. Esta é a principal diferença.
controlled components
( <input type="text" value="value" onChange={handleChangeCallbackFn} />
) em comparação com o HTML tradicional, onde um elemento de entrada manipula seu próprio valor e pode ser lido por meio de refs
called uncontrolled components
( <value type="text" />
). Os componentes controlados estão gerenciando seu próprio estado por meio setState
ou obtendo-o de seu componente pai como suporte.
defaultValue
por adereços, mas que notifica o controlador onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.