Sobes.tech
Middle

Koja je razlika između kontrolisanog i nekontrolisanog unosa i kada koristiti jedno ili drugo?

sobes.tech АИ

Одговор од АИ

Kontrolisani unos — ovo je element forme čija je vrednost potpuno kontrolisana stanjem komponente (na primer, u React-u). Vrednost polja se čuva u stanju i ažurira putem handlera događaja.

Nekontrolisani unos — ovo je element forme koji se upravlja samim DOM-om, a ne stanjem komponente. Vrednost se čita putem referenci kada je potrebno.

Kada koristiti:

  • Kontrolisani unos je pogodan kada je potrebno odmah reagovati na promene, validirati podatke, sinhronizovati sa stanjem aplikacije.
  • Nekontrolisani unos je jednostavniji i brži za jednostavne forme gde nije potrebna stalna kontrola unosa.

Primer kontrolisanog unosa u React-u:

function MyInput() {
  const [value, setValue] = React.useState('');
  return <input value={value} onChange={e => setValue(e.target.value)} />;
}

Primer nekontrolisanog unosa:

function MyInput() {
  const inputRef = React.useRef(null);
  const handleSubmit = () => {
    alert(inputRef.current.value);
  };
  return <>
    <input ref={inputRef} />
    <button onClick={handleSubmit}>Pošalji</button>
  </>;
}