Radek Musil
About meSkills
Services
My Projects
AI news
Contact me
Zpět na slovník

Správa stavu

Frontend a UXState management

Také známo jako State management, Store

Stručně

Rozhodnutí, co si aplikace pamatuje, kde to žije a kdo to smí měnit — nejdřív lokálně, globálně jen když to sdílíte.

Stav je jakákoli data, která si rozhraní musí pamatovat: otevřený panel filtrů, naplněný košík, přihlášený uživatel, poslední hledání. Správa stavu znamená u každé takové hodnoty odpovědět na tři otázky — kde žije, kdo ji smí měnit a jak dlouho přežije znovunačtení stránky.

Ve výchozím nastavení lokálně

Nejlevnější stav je ten, který neexistuje: hodně toho, co vypadá jako stav, je parametr v URL nebo hodnota ze serveru, kterou stačí načíst. Pak držte stav co nejníž. Text v hledání, otevřený nebo zavřený akordeon, zvýrazněný řádek — to patří do komponenty a nikam jinam.

Praktické pravidlo pro e-shop: aktivní stránka výpisu patří do URL (`?strana=2`), košík do globálního store a text hledání do komponenty. Když to prohodíte, dostanete odkazy, které otevřou špatnou stránku, a tlačítko zpět, které lidi překvapí.

Globální store se mění na šuplík

Globální stav je pohodlný: nemusíte protahovat props, a tak roste. Za rok v store leží košík, měna, feature flag z roku 2023, notifikace, cache posledních padesáti produktů a filtr, který kdysi potřebovala jedna stránka. Nikdo neumí říct, co ještě co používá, protože všechno dosáhne na všechno.

Nejčastějším viníkem jsou data ze serveru. Produkty, objednávky a profil uživatele není potřeba kopírovat do globálního store — vrstva na načítání s cache (React Query, SWR nebo cache fetchů v Next.js) už řeší načítání, opakování i zneplatnění. Globální store si nechte na skutečně celoaplikační klientské věci: téma, jazyk, otevřený košík — a funkce, které do něj zapisují, držte v jednom modulu.

Kompromis: store je sdílená závislost

Každý modul, který čte sdílený store, může rozbít změna na jiném místě. To není důvod se globálnímu stavu vyhýbat — košík opravdu musí být vidět z hlavičky, z tlačítka i z pokladny — ale je to důvod držet store malý a jeho API nudné: pár pojmenovaných akcí, explicitní typy a žádná business logika schovaná v komponentách, které volají `set` přímo.

V malé aplikaci stačí `useState`, kousek kontextu a URL. Knihovna na stav se vyplatí, když stav přežije přechod mezi stránkami, zapisuje do něj mnoho komponent nebo musí fungovat offline ve více záložkách.

Zdroje

  • React — Managing state

Související pojmy

Komponenta

Znovupoužitelná část rozhraní, která má jednu úlohu — kartu produktu, cenovku, filtr — a svůj malý stav.

SPA (jednostránková aplikace)

Jedna HTML stránka načtená jednou; každý přechod proběhne v prohlížeči bez žádosti o nový dokument ze serveru.

SSR (renderování na serveru)

HTML se staví na serveru při každém požadavku, takže návštěvník vidí obsah dřív, než se načte JavaScript.

Zpět na slovník
SSR (renderování na serveru)Strukturovaná data (schema.org)
Radek Musil|Product Engineer
·
|Helper·Privacy Policy·Cookies·Terms of Use|

© 2026 Radek Musil. All rights reserved.