Sobes.tech
Middle

Mis vahe on kontrollitud ja kontrollimata sisendil ning millal mida kasutada?

sobes.tech AI

Vastus AI-lt

Kontrollitud sisend — see on vormielement, mille väärtus on täielikult komponendi oleku kontrolli all (näiteks Reactis). Välja väärtus salvestatakse olekusse ja uuendatakse sündmuse töötleja kaudu.

Kontrollimata sisend — see on vormielement, mida hallatakse ise DOM-i poolt, mitte komponendi oleku kaudu. Väärtus loetakse viidete kaudu, kui see on vajalik.

Millal kasutada:

  • Kontrollitud sisend on mugav, kui on vaja reageerida kohe muutustele, valideerida andmeid, sünkroniseerida rakenduse olekuga.
  • Kontrollimata sisend on lihtsam ja kiirem lihtsate vormide puhul, kus pidev kontroll ei ole vajalik.

Reacti näide kontrollitud sisendist:

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

Näide kontrollimata sisendist:

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