# Vytvoření bankovní aplikace, část 1: HTML šablony a trasy ve webové aplikaci Když navigační počítač Apolla 11 v roce 1969 letěl na Měsíc, musel přepínat mezi různými programy, aniž by restartoval celý systém. Moderní webové aplikace fungují podobně – mění to, co vidíte, bez nutnosti znovu načítat vše od začátku. To vytváří hladký a pohotový zážitek, který uživatelé dnes očekávají. Na rozdíl od tradičních webových stránek, které při každé interakci znovu načítají celé stránky, moderní webové aplikace aktualizují pouze části, které je třeba změnit. Tento přístup, podobně jako když řídící středisko přepíná mezi různými displeji při zachování stálé komunikace, vytváří plynulý zážitek, na který jsme si zvykli. Co dělá tento rozdíl tak dramatickým: | Tradiční aplikace s více stránkami | Moderní aplikace s jednou stránkou | |-----------------------------------|------------------------------------| | **Navigace** | Načítání celé stránky pro každou obrazovku | Okamžité přepínání obsahu | | **Výkon** | Pomalejší kvůli kompletnímu stahování HTML | Rychlejší díky částečným aktualizacím | | **Uživatelský zážitek** | Rušivé blikání stránek | Plynulé, aplikaci podobné přechody | | **Sdílení dat** | Obtížné mezi stránkami | Snadná správa stavu | | **Vývoj** | Údržba více HTML souborů | Jedno HTML s dynamickými šablonami | **Porozumění evoluci:** - **Tradiční aplikace** vyžadují serverové požadavky pro každou navigační akci - **Moderní SPA** se načítají jednou a dynamicky aktualizují obsah pomocí JavaScriptu - **Očekávání uživatelů** nyní preferují okamžité, plynulé interakce - **Výhody výkonu** zahrnují sníženou šířku pásma a rychlejší odezvy V této lekci vytvoříme bankovní aplikaci s více obrazovkami, které spolu plynule spolupracují. Stejně jako vědci používají modulární nástroje, které lze přizpůsobit různým experimentům, použijeme HTML šablony jako znovupoužitelné komponenty, které lze zobrazit podle potřeby. Budete pracovat s HTML šablonami (znovupoužitelné návrhy pro různé obrazovky), JavaScriptovými trasami (systém, který přepíná mezi obrazovkami) a historií prohlížeče (která zajišťuje správnou funkci tlačítka zpět). To jsou stejné základní techniky, které používají frameworky jako React, Vue a Angular. Na konci budete mít funkční bankovní aplikaci, která demonstruje profesionální principy aplikací s jednou stránkou. ## Kvíz před lekcí [Pre-lecture quiz](https://ff-quizzes.netlify.app/web/quiz/41) ### Co budete potřebovat Budeme potřebovat lokální webový server pro testování naší bankovní aplikace – nebojte se, je to jednodušší, než to zní! Pokud ho ještě nemáte nastavený, stačí nainstalovat [Node.js](https://nodejs.org) a spustit `npx lite-server` z vaší složky projektu. Tento šikovný příkaz spustí lokální server a automaticky otevře vaši aplikaci v prohlížeči. ### Příprava Na vašem počítači vytvořte složku s názvem `bank` a uvnitř ní soubor `index.html`. Začneme s tímto HTML [boilerplate](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Co tento boilerplate poskytuje:** - **Nastavuje** strukturu HTML5 dokumentu s řádnou deklarací DOCTYPE - **Konfiguruje** kódování znaků jako UTF-8 pro podporu mezinárodního textu - **Umožňuje** responzivní design pomocí meta tagu viewport pro mobilní kompatibilitu - **Nastavuje** popisný název, který se zobrazí na záložce prohlížeče - **Vytváří** čistou sekci těla, kde budeme budovat naši aplikaci > 📁 **Náhled struktury projektu** > > **Na konci této lekce bude váš projekt obsahovat:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Odpovědnosti souborů:** > - **index.html**: Obsahuje všechny šablony a poskytuje strukturu aplikace > - **app.js**: Řídí trasy, navigaci a správu šablon > - **Šablony**: Definují uživatelské rozhraní pro přihlášení, dashboard a další obrazovky --- ## HTML šablony Šablony řeší základní problém ve webovém vývoji. Když Gutenberg vynalezl pohyblivý typ tisku ve 40. letech 15. století, uvědomil si, že místo vyřezávání celých stránek může vytvořit znovupoužitelné bloky písmen a uspořádat je podle potřeby. HTML šablony fungují na stejném principu – místo vytváření samostatných HTML souborů pro každou obrazovku definujete znovupoužitelné struktury, které lze zobrazit podle potřeby. Představte si šablony jako návrhy pro různé části vaší aplikace. Stejně jako architekt vytvoří jeden návrh a použije ho několikrát místo toho, aby znovu kreslil identické místnosti, vytvoříme šablony jednou a použijeme je podle potřeby. Prohlížeč tyto šablony uchovává skryté, dokud je JavaScript neaktivuje. Pokud chcete vytvořit více obrazovek pro webovou stránku, jedním řešením by bylo vytvořit jeden HTML soubor pro každou obrazovku, kterou chcete zobrazit. Toto řešení však přináší určité nepohodlí: - Při přepínání obrazovek musíte znovu načítat celé HTML, což může být pomalé. - Je obtížné sdílet data mezi různými obrazovkami. Dalším přístupem je mít pouze jeden HTML soubor a definovat více [HTML šablon](https://developer.mozilla.org/docs/Web/HTML/Element/template) pomocí elementu `