# Vytvorenie bankovej aplikácie, časť 1: HTML šablóny a trasy vo webovej aplikácii Keď Apollo 11 v roku 1969 navigoval na Mesiac, jeho riadiaci počítač musel prepínať medzi rôznymi programami bez toho, aby reštartoval celý systém. Moderné webové aplikácie fungujú podobne – menia to, čo vidíte, bez toho, aby sa všetko načítalo od začiatku. To vytvára plynulý a responzívny zážitok, ktorý dnes používatelia očakávajú. Na rozdiel od tradičných webových stránok, ktoré pri každej interakcii načítavajú celé stránky, moderné webové aplikácie aktualizujú iba tie časti, ktoré je potrebné zmeniť. Tento prístup, podobne ako prepínanie medzi rôznymi obrazovkami v riadiacom centre pri zachovaní neustálej komunikácie, vytvára plynulý zážitok, na ktorý sme si zvykli. Tu je to, čo robí rozdiel tak dramatickým: | Tradičné viacstránkové aplikácie | Moderné jednostránkové aplikácie | |----------------------------------|----------------------------------| | **Navigácia** | Načítanie celej stránky pri každej obrazovke | Okamžité prepínanie obsahu | | **Výkon** | Pomalšie kvôli úplnému načítaniu HTML | Rýchlejšie vďaka čiastočným aktualizáciám | | **Používateľský zážitok** | Rušivé blikanie stránok | Plynulé, aplikáciám podobné prechody | | **Zdieľanie dát** | Ťažké medzi stránkami | Jednoduché spravovanie stavu | | **Vývoj** | Viacero HTML súborov na údržbu | Jeden HTML s dynamickými šablónami | **Porozumenie evolúcii:** - **Tradičné aplikácie** vyžadujú serverové požiadavky pri každej navigačnej akcii - **Moderné SPA** sa načítajú raz a obsah dynamicky aktualizujú pomocou JavaScriptu - **Očakávania používateľov** teraz uprednostňujú okamžité, plynulé interakcie - **Výkonnostné výhody** zahŕňajú zníženie šírky pásma a rýchlejšie odozvy V tejto lekcii vytvoríme bankovú aplikáciu s viacerými obrazovkami, ktoré spolu plynulo prechádzajú. Podobne ako vedci používajú modulárne nástroje, ktoré je možné prekonfigurovať na rôzne experimenty, použijeme HTML šablóny ako opakovane použiteľné komponenty, ktoré je možné zobraziť podľa potreby. Budete pracovať s HTML šablónami (opakovane použiteľné návrhy pre rôzne obrazovky), JavaScript routovaním (systém, ktorý prepína medzi obrazovkami) a históriou prehliadača (ktorá zabezpečuje správne fungovanie tlačidla späť). Toto sú rovnaké základné techniky, ktoré používajú frameworky ako React, Vue a Angular. Na konci budete mať funkčnú bankovú aplikáciu, ktorá demonštruje profesionálne princípy jednostránkových aplikácií. ## Kvíz pred prednáškou [Prednáškový kvíz](https://ff-quizzes.netlify.app/web/quiz/41) ### Čo budete potrebovať Na testovanie našej bankovej aplikácie budeme potrebovať lokálny webový server – nebojte sa, nie je to také zložité, ako to znie! Ak ho ešte nemáte nastavený, stačí nainštalovať [Node.js](https://nodejs.org) a spustiť príkaz `npx lite-server` z vášho projektového priečinka. Tento šikovný príkaz spustí lokálny server a automaticky otvorí vašu aplikáciu v prehliadači. ### Príprava Na vašom počítači vytvorte priečinok s názvom `bank` a v ňom súbor s názvom `index.html`. Začneme s týmto HTML [boilerplate](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Čo tento boilerplate poskytuje:** - **Zavádza** štruktúru dokumentu HTML5 s riadnym DOCTYPE vyhlásením - **Konfiguruje** kódovanie znakov ako UTF-8 pre podporu medzinárodného textu - **Umožňuje** responzívny dizajn pomocou meta tagu viewport pre mobilnú kompatibilitu - **Nastavuje** popisný názov, ktorý sa zobrazí na karte prehliadača - **Vytvára** čistú sekciu tela, kde budeme budovať našu aplikáciu > 📁 **Náhľad štruktúry projektu** > > **Na konci tejto lekcie bude váš projekt obsahovať:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Zodpovednosti súborov:** > - **index.html**: Obsahuje všetky šablóny a poskytuje štruktúru aplikácie > - **app.js**: Rieši routovanie, navigáciu a správu šablón > - **Šablóny**: Definujú používateľské rozhranie pre prihlásenie, dashboard a ďalšie obrazovky --- ## HTML šablóny Šablóny riešia základný problém vo webovom vývoji. Keď Gutenberg v 1440-tych rokoch vynašiel pohyblivú tlač, uvedomil si, že namiesto vyrezávania celých stránok môže vytvoriť opakovane použiteľné bloky písmen a usporiadať ich podľa potreby. HTML šablóny fungujú na rovnakom princípe – namiesto vytvárania samostatných HTML súborov pre každú obrazovku definujete opakovane použiteľné štruktúry, ktoré je možné zobraziť podľa potreby. Predstavte si šablóny ako návrhy pre rôzne časti vašej aplikácie. Rovnako ako architekt vytvára jeden návrh a používa ho viackrát namiesto kreslenia identických miestností, vytvárame šablóny raz a inštancujeme ich podľa potreby. Prehliadač tieto šablóny uchováva skryté, kým ich JavaScript neaktivuje. Ak chcete vytvoriť viacero obrazoviek pre webovú stránku, jedným riešením by bolo vytvoriť jeden HTML súbor pre každú obrazovku, ktorú chcete zobraziť. Toto riešenie však prináša určité nevýhody: - Musíte načítať celý HTML pri prepínaní obrazovky, čo môže byť pomalé. - Je ťažké zdieľať dáta medzi rôznymi obrazovkami. Iný prístup je mať iba jeden HTML súbor a definovať viacero [HTML šablón](https://developer.mozilla.org/docs/Web/HTML/Element/template) pomocou elementu `