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.