# Banki alkalmazás készítése 1. rész: HTML sablonok és útvonalak egy webalkalmazásban Amikor az Apollo 11 navigációs számítógépe 1969-ben a Holdra repült, különböző programok között kellett váltania anélkül, hogy az egész rendszert újraindította volna. A modern webalkalmazások hasonlóan működnek – megváltoztatják, amit látsz, anélkül, hogy mindent újratöltenének. Ez teremti meg azt a gördülékeny, gyors élményt, amit a felhasználók ma elvárnak. A hagyományos weboldalakkal ellentétben, amelyek minden interakcióhoz teljes oldalakat töltenek újra, a modern webalkalmazások csak azokat a részeket frissítik, amelyek változtatásra szorulnak. Ez a megközelítés, hasonlóan ahhoz, ahogy az irányítóközpont különböző kijelzők között vált, miközben folyamatos kommunikációt tart fenn, megteremti azt a folyékony élményt, amit ma már megszoktunk. Ez az, amiért a különbség olyan drámai: | Hagyományos többoldalas alkalmazások | Modern egyoldalas alkalmazások | |-------------------------------------|--------------------------------| | **Navigáció** | Teljes oldal újratöltése minden képernyőnél | Azonnali tartalomváltás | | **Teljesítmény** | Lassabb a teljes HTML letöltése miatt | Gyorsabb részleges frissítésekkel | | **Felhasználói élmény** | Zavaró oldalvillanások | Gördülékeny, alkalmazásszerű átmenetek | | **Adatmegosztás** | Nehézkes az oldalak között | Könnyű állapotkezelés | | **Fejlesztés** | Több HTML fájl karbantartása szükséges | Egyetlen HTML dinamikus sablonokkal | **Az evolúció megértése:** - **Hagyományos alkalmazások** minden navigációs művelethez szerver kéréseket igényelnek - **Modern SPAs** egyszer töltődnek be, és dinamikusan frissítik a tartalmat JavaScript segítségével - **Felhasználói elvárások** most az azonnali, zökkenőmentes interakciókat részesítik előnyben - **Teljesítmény előnyök** közé tartozik a csökkentett sávszélesség és gyorsabb válaszidők Ebben a leckében egy banki alkalmazást fogunk építeni, amely több képernyőt tartalmaz, amelyek zökkenőmentesen kapcsolódnak egymáshoz. Ahogy a tudósok moduláris eszközöket használnak, amelyeket különböző kísérletekhez lehet átkonfigurálni, mi HTML sablonokat fogunk használni, mint újrafelhasználható komponenseket, amelyeket szükség szerint megjeleníthetünk. HTML sablonokkal (különböző képernyők újrafelhasználható tervrajzai), JavaScript útvonalvezetéssel (a rendszer, amely a képernyők között vált), és a böngésző történeti API-jával (amely biztosítja, hogy a vissza gomb megfelelően működjön) fogunk dolgozni. Ezek ugyanazok az alapvető technikák, amelyeket olyan keretrendszerek használnak, mint a React, Vue és Angular. A végére egy működő banki alkalmazásod lesz, amely bemutatja a professzionális egyoldalas alkalmazás elveit. ## Előadás előtti kvíz [Előadás előtti kvíz](https://ff-quizzes.netlify.app/web/quiz/41) ### Amire szükséged lesz Egy helyi webszerverre lesz szükségünk, hogy teszteljük a banki alkalmazásunkat – ne aggódj, ez könnyebb, mint amilyennek hangzik! Ha még nincs beállítva, egyszerűen telepítsd a [Node.js](https://nodejs.org) programot, és futtasd a `npx lite-server` parancsot a projekt mappádból. Ez a praktikus parancs elindít egy helyi szervert, és automatikusan megnyitja az alkalmazásodat a böngészőben. ### Előkészületek A számítógépeden hozz létre egy `bank` nevű mappát, benne egy `index.html` nevű fájllal. Ebből az HTML [sablonból](https://en.wikipedia.org/wiki/Boilerplate_code) fogunk kiindulni: ```html Bank App ``` **Ez a sablon a következőket biztosítja:** - **Létrehozza** az HTML5 dokumentum struktúráját megfelelő DOCTYPE deklarációval - **Beállítja** a karakterkódolást UTF-8-ra a nemzetközi szövegtámogatás érdekében - **Engedélyezi** a reszponzív dizájnt a viewport meta tag segítségével a mobil kompatibilitás érdekében - **Beállít egy** leíró címet, amely megjelenik a böngésző fülén - **Létrehoz egy** tiszta body szekciót, ahol az alkalmazásunkat felépítjük > 📁 **Projektstruktúra előnézet** > > **A lecke végére a projekted a következőket fogja tartalmazni:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Fájlok feladatai:** > - **index.html**: Tartalmazza az összes sablont és biztosítja az alkalmazás struktúráját > - **app.js**: Kezeli az útvonalvezérlést, navigációt és sablonkezelést > - **Sablonok**: Meghatározzák a felhasználói felületet a bejelentkezéshez, a vezérlőpulthoz és más képernyőkhöz --- ## HTML sablonok A sablonok megoldanak egy alapvető problémát a webfejlesztésben. Amikor Gutenberg az 1440-es években feltalálta a mozgatható betűnyomtatást, rájött, hogy ahelyett, hogy teljes oldalakat faragna, újrafelhasználható betűblokkokat hozhat létre, és szükség szerint elrendezheti őket. Az HTML sablonok ugyanilyen elven működnek – ahelyett, hogy külön HTML fájlokat hoznánk létre minden képernyőhöz, újrafelhasználható struktúrákat definiálunk, amelyeket szükség esetén megjeleníthetünk. Gondolj a sablonokra úgy, mint az alkalmazásod különböző részeinek tervrajzaira. Ahogy egy építész egy tervrajzot készít, és többször használja, ahelyett, hogy azonos szobákat újrarajzolna, mi egyszer készítünk sablonokat, és szükség szerint példányosítjuk őket. A böngésző ezeket a sablonokat rejtve tartja, amíg a JavaScript aktiválja őket. Ha több képernyőt szeretnél létrehozni egy weboldalhoz, az egyik megoldás az lenne, hogy minden megjeleníteni kívánt képernyőhöz egy HTML fájlt hozol létre. Ez azonban némi kényelmetlenséggel jár: - Az egész HTML-t újra kell tölteni képernyőváltáskor, ami lassú lehet. - Nehéz adatokat megosztani a különböző képernyők között. Egy másik megközelítés az, hogy csak egy HTML fájl van, és több [HTML sablont](https://developer.mozilla.org/docs/Web/HTML/Element/template) definiálunk a `