Reactда стейтлар реактивлиги

Ҳозир реактивлик қандай ишлашини кўрамиз. У стейт ўзгарганида ўзгартиришлар дарҳол экранда кўринишини таъминлайди.

Келиб, мисолда кўрамиз. Фарз қилайлик, бизда маҳсулот номи билан стейт бор:

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

Маҳсулот номини версткада чиқарамиз:

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

Энди бизнинг стейтимизни ўзгартирадиган бир тугма ясаймиз:

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

Клик обработчигида setName функциясидан фойдаланамиз, маҳсулотга янги ном бериш учун:

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

Барча кодимизни бирга яғамиз. Натижада тугма босиллиши билан матноз дарҳол янги қийматга ўзгариши келиб чиқади:

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

Алохида функция-обработчиклардан фойдаланиш шарт эмас. Номаълум стрелочна функциядан фойдаланиш мумкин:

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

Фойдаланувчининг исми ва фамиляси билан стейтлар берилган. Уларни версткада чиқаринг. Ушбу стейтларни ўзгартириш учун тугмалар ясанг.