Sobes.tech
Middle+

Prečo React nie je reaktívny?

sobes.tech AI

Odpoveď od AI

React nie je reaktívny v klasickom zmysle reaktívneho programovania, pretože automaticky nesleduje zmeny dát a neaktualizuje UI ako reakciu na zmeny stavu bez explicitného volania.

V Reacte sa aktualizácia rozhrania vykonáva volaním funkcie setState alebo aktualizáciou stavu pomocou hookov (useState, useReducer), čo spúšťa nové renderovanie komponentu. Ide o deklaratívny prístup, ale nie je reaktívny v zmysle automatického sledovania tokov dát a ich zmien.

V reaktívnych rámcoch (napríklad Vue, Svelte, MobX) sú zmeny dát automaticky sledované a vedú k aktualizácii UI bez potreby manuálneho volania aktualizácií.

Príklad v React:

function Counter() {
  const [count, setCount] = React.useState(0);

  // Aktualizácia UI nastáva iba po volaní setCount
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

Tu React "nereaguje" na zmenu premennej count, ale aktualizuje UI iba po volaní setCount, čo sa líši od reaktívnych systémov, kde sa zmena premennej automaticky odráža v UI.