Middle
Qual è la differenza tra input controllato e non controllato e quando usarli?
sobes.tech AI
Risposta dell'AI
Input controllato — è un elemento di modulo il cui valore è completamente controllato dallo stato del componente (ad esempio, in React). Il valore del campo viene memorizzato nello stato e aggiornato tramite un gestore di eventi.
Input non controllato — è un elemento di modulo gestito dal DOM stesso, non dallo stato del componente. Il valore viene letto tramite riferimenti quando necessario.
Quando usarlo:
- L'input controllato è utile quando si deve reagire immediatamente ai cambiamenti, convalidare i dati, sincronizzare con lo stato dell'applicazione.
- L'input non controllato è più semplice e veloce per moduli semplici dove non è richiesta una sorveglianza costante dell'input.
Esempio di input controllato in React:
function MyInput() {
const [value, setValue] = React.useState('');
return <input value={value} onChange={e => setValue(e.target.value)} />;
}
Esempio di input non controllato:
function MyInput() {
const inputRef = React.useRef(null);
const handleSubmit = () => {
alert(inputRef.current.value);
};
return <>
<input ref={inputRef} />
<button onClick={handleSubmit}>Invia</button>
</>;
}