Reactiivinen tila Reactissa

Katsotaan nyt, miten reactiivisuus toimii. Se saa aikaan sen, että kun tilaa muutetaan, muutokset näkyvät välittömästi ruudulla.

Katsotaan esimerkkiä. Oletetaan, että meillä on tila tuotteen nimelle:

jsxconst [name, setName] = useState('prod');

Esitetään tuotteen nimi HTML-muotoilussa:

jsxreturn <div>
  <span>{name}</span>
</div>;

Tehdään nyt painike, jota painamalla tilamme muuttuu:

jsxreturn <div>
  <span>{name}</span>
  <button onClick={clickHandler}>btn</button>
</div>;

Klikinkäsittelijässä käytämme funktiota setName asettaaksemme tuotteelle uuden nimen:

jsxfunction clickHandler() {
  setName('xxxx');
}

Kootaan kaikki koodimme yhteen. Käy niin, että painiketta painettaessa teksti muuttuu välittömästi uudeksi arvoksi:

jsxfunction App() {
  const [name, setName] = useState('prod');
  
  function clickHandler() {
    setName('xxxx');
  }
  
  return <div>
    <span>{name}</span>
    <button onClick={clickHandler}>btn</button>
  </div>;
}

Eristen käsittelijäfunktioiden käyttö ei ole pakollista. Voit käyttää nimetöntä nuolifunktiota:

jsxfunction App() {
  const [name, setName] = useState('prod');
  
  return <div>
    <span>{name}</span>
    <button onClick={() => setName('xxxx')}>btn</button>
  </div>;
}
Задание 1

Annettu tila käyttäjän etu- ja sukunimelle. Esitä ne HTML-muotoilussa. Tee painikkeet näiden tilojen muuttamiseksi.