Sobes.tech
Middle+

Proč React není reaktivní?

sobes.tech AI

Odpověď od AI

React není v klasickém smyslu reaktivní, protože automaticky nesleduje změny dat a neaktualizuje uživatelské rozhraní v reakci na změny stavu bez explicitního volání.

V Reactu se aktualizace rozhraní provádí voláním funkce setState nebo aktualizací stavu pomocí hooků (useState, useReducer), což spouští nové renderování komponenty. Jedná se o deklarativní přístup, ale nikoliv reaktivní ve smyslu automatického sledování toků dat a jejich změn.

V reaktivních rámcích (například Vue, Svelte, MobX) jsou změny dat automaticky sledovány a vedou k aktualizaci UI bez nutnosti manuálního volání aktualizací.

Příklad v React:

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

  // Aktualizace UI nastává pouze po volání setCount
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

Zde React "nereaguje" na změnu proměnné count, ale aktualizuje UI pouze po volání setCount, což se liší od reaktivních systémů, kde se změna proměnné automaticky odráží v UI.