Sobes.tech
Middle

Kāda ir atšķirība starp kontrolētu un nekontrolētu ievadi un kad ko izmantot?

sobes.tech AI

Atbilde no AI

Kontrolēta ievade — tas ir formas elements, kura vērtība ir pilnībā kontrolēta ar komponenta stāvokli (piemēram, React). Lauka vērtība tiek glabāta stāvoklī un tiek atjaunināta ar notikumu apstrādātāju.

Nekontrolēta ievade — tas ir formas elements, kuru pārvalda pats DOM, nevis komponenta stāvoklis. Vērtība tiek lasīta caur atsaucēm, kad tas ir nepieciešams.

Kad izmantot:

  • Kontrolēta ievade ir ērta, ja nepieciešams nekavējoties reaģēt uz izmaiņām, validēt datus, sinhronizēt ar lietojumprogrammas stāvokli.
  • Nekontrolēta ievade ir vienkāršāka un ātrāka vienkāršiem formu gadījumiem, kur nav nepieciešama pastāvīga uzraudzība.

React piemērs kontrolētai ievadei:

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

Nekontrolētas ievades piemērs:

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