# Construirea unei aplicații bancare Partea 1: Șabloane HTML și rute într-o aplicație web Când computerul de ghidare al Apollo 11 a navigat spre Lună în 1969, a trebuit să comute între diferite programe fără a reporni întregul sistem. Aplicațiile web moderne funcționează într-un mod similar – ele schimbă ceea ce vezi fără a reîncărca totul de la zero. Acest lucru creează o experiență fluidă și receptivă pe care utilizatorii o așteaptă astăzi. Spre deosebire de site-urile tradiționale care reîncarcă pagini întregi pentru fiecare interacțiune, aplicațiile web moderne actualizează doar părțile care necesită modificări. Această abordare, asemănătoare modului în care centrul de control comută între diferite afișaje menținând în același timp comunicarea constantă, creează acea experiență fluidă pe care am ajuns să o așteptăm. Iată ce face diferența atât de dramatică: | Aplicații tradiționale cu mai multe pagini | Aplicații moderne cu o singură pagină | |-------------------------------------------|---------------------------------------| | **Navigare** | Reîncărcare completă a paginii pentru fiecare ecran | Comutare instantanee a conținutului | | **Performanță** | Mai lentă din cauza descărcării complete a HTML-ului | Mai rapidă cu actualizări parțiale | | **Experiența utilizatorului** | Flash-uri de pagină deranjante | Tranziții fluide, asemănătoare aplicațiilor | | **Partajarea datelor** | Dificilă între pagini | Gestionare ușoară a stării | | **Dezvoltare** | Mai multe fișiere HTML de întreținut | Un singur HTML cu șabloane dinamice | **Înțelegerea evoluției:** - **Aplicațiile tradiționale** necesită cereri către server pentru fiecare acțiune de navigare - **SPA-urile moderne** se încarcă o dată și actualizează conținutul dinamic folosind JavaScript - **Așteptările utilizatorilor** favorizează acum interacțiunile instantanee și fluide - **Beneficiile performanței** includ reducerea lățimii de bandă și răspunsuri mai rapide În această lecție, vom construi o aplicație bancară cu mai multe ecrane care se îmbină perfect. Așa cum oamenii de știință folosesc instrumente modulare care pot fi reconfigurate pentru diferite experimente, vom folosi șabloane HTML ca componente reutilizabile care pot fi afișate după cum este necesar. Vei lucra cu șabloane HTML (modele reutilizabile pentru diferite ecrane), rutare JavaScript (sistemul care comută între ecrane) și API-ul de istoric al browserului (care menține funcționarea butonului de întoarcere). Acestea sunt aceleași tehnici fundamentale utilizate de framework-uri precum React, Vue și Angular. La final, vei avea o aplicație bancară funcțională care demonstrează principiile profesionale ale aplicațiilor cu o singură pagină. ## Chestionar înainte de lecție [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/web/quiz/41) ### De ce ai nevoie Vom avea nevoie de un server web local pentru a testa aplicația bancară – nu te îngrijora, este mai simplu decât pare! Dacă nu ai deja unul configurat, instalează [Node.js](https://nodejs.org) și rulează `npx lite-server` din folderul proiectului tău. Această comandă utilă pornește un server local și deschide automat aplicația în browser. ### Pregătire Pe computerul tău, creează un folder numit `bank` cu un fișier numit `index.html` în interiorul său. Vom începe cu acest [boilerplate HTML](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Ce oferă acest boilerplate:** - **Stabilește** structura documentului HTML5 cu declarația DOCTYPE corespunzătoare - **Configurează** codificarea caracterelor ca UTF-8 pentru suport internațional al textului - **Permite** designul receptiv cu meta tag-ul viewport pentru compatibilitate mobilă - **Setează** un titlu descriptiv care apare în fila browserului - **Creează** o secțiune curată a corpului unde vom construi aplicația > 📁 **Previzualizare structură proiect** > > **La finalul acestei lecții, proiectul tău va conține:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Responsabilitățile fișierelor:** > - **index.html**: Conține toate șabloanele și oferă structura aplicației > - **app.js**: Gestionează rutarea, navigarea și administrarea șabloanelor > - **Șabloane**: Definirea interfeței pentru autentificare, tabloul de bord și alte ecrane --- ## Șabloane HTML Șabloanele rezolvă o problemă fundamentală în dezvoltarea web. Când Gutenberg a inventat tiparul cu litere mobile în anii 1440, el a realizat că, în loc să sculpteze pagini întregi, putea crea blocuri de litere reutilizabile și să le aranjeze după cum era necesar. Șabloanele HTML funcționează pe același principiu – în loc să creezi fișiere HTML separate pentru fiecare ecran, definești structuri reutilizabile care pot fi afișate atunci când este necesar. Gândește-te la șabloane ca la planuri pentru diferite părți ale aplicației tale. Așa cum un arhitect creează un singur plan și îl folosește de mai multe ori în loc să redeseneze camere identice, noi creăm șabloane o dată și le instanțiem după cum este necesar. Browserul păstrează aceste șabloane ascunse până când JavaScript le activează. Dacă dorești să creezi mai multe ecrane pentru o pagină web, o soluție ar fi să creezi un fișier HTML pentru fiecare ecran pe care vrei să-l afișezi. Totuși, această soluție vine cu unele inconveniente: - Trebuie să reîncarci întregul HTML atunci când schimbi ecranul, ceea ce poate fi lent. - Este dificil să partajezi date între diferite ecrane. O altă abordare este să ai un singur fișier HTML și să definești mai multe [șabloane HTML](https://developer.mozilla.org/docs/Web/HTML/Element/template) folosind elementul `