¿Qué son los componentes controlados y los componentes no controlados en ReactJS? ¿En qué se diferencian entre sí?
101
¿Qué son los componentes controlados y los componentes no controlados en ReactJS? ¿En qué se diferencian entre sí?
Respuestas:
Esto se relaciona con los componentes DOM con estado (elementos de formulario) y los documentos de React explican la diferencia:
props
y notifica cambios a través de devoluciones de llamada comoonChange
. Un componente principal lo "controla" manejando la devolución de llamada y administrando su propio estado y pasando los nuevos valores como accesorios al componente controlado. También podría llamar a esto un "componente tonto".ref
para encontrar su valor actual cuando lo necesita. Es un poco más parecido al HTML tradicional.La mayoría de los componentes nativos de la forma React admiten el uso controlado y no controlado:
En la mayoría (o en todos) de los casos , debe utilizar componentes controlados .
fuente
state
lugar deprops
?props
. Un componente no controlado se usaríastate
para controlar el valor en sí mismo internamente. Ésta es la diferencia clave.controlled components
(<input type="text" value="value" onChange={handleChangeCallbackFn} />
) frente al HTML tradicional, donde un elemento de entrada maneja su propio valor y se puede leer a través derefs
llamadouncontrolled components
(<value type="text" />
). Los componentes controlados gestionan su propio estado a travéssetState
de su componente principal o lo obtienen de él como accesorios.defaultValue
por accesorios, pero que notifica al controladoronBlur
?<Button onClick={() => console.log("clicked")}>Click</Button>
.fuente