# Изградња апликације за банкарство, део 1: HTML шаблони и руте у веб апликацији Када је рачунар за навигацију Аполо 11 мисије водио лет на Месец 1969. године, морао је да прелази између различитих програма без поновног покретања целог система. Савремене веб апликације функционишу на сличан начин – мењају оно што видите без поновног учитавања целокупног садржаја. Ово ствара глатко и одзивно корисничко искуство које се данас очекује. За разлику од традиционалних веб сајтова који поново учитавају целе странице за сваку интеракцију, савремене веб апликације ажурирају само делове који треба да се промене. Овај приступ, сличан начину на који контролни центар прелази између различитих приказа док одржава сталну комуникацију, ствара флуидно искуство које смо навикли да очекујемо. Ево шта чини разлику тако драматичном: | Традиционалне апликације са више страница | Савремене апликације са једном страницом | |------------------------------------------|------------------------------------------| | **Навигација** | Поновно учитавање целе странице за сваки екран | Инстантно пребацивање садржаја | | **Перформансе** | Спорије због комплетног преузимања HTML-а | Брже са делимичним ажурирањима | | **Корисничко искуство** | Нагли прелази између страница | Глатке, апликацијске транзиције | | **Дељење података** | Тешко између страница | Лако управљање стањем | | **Развој** | Одржавање више HTML датотека | Један HTML са динамичким шаблонима | **Разумевање еволуције:** - **Традиционалне апликације** захтевају серверске захтеве за сваку навигациону акцију - **Савремене SPA** се учитавају једном и динамички ажурирају садржај користећи JavaScript - **Очекивања корисника** сада фаворизују инстантне, беспрекорне интеракције - **Предности перформанси** укључују смањену потрошњу пропусног опсега и брже одговоре У овом лекцији, направићемо апликацију за банкарство са више екрана који се беспрекорно међусобно повезују. Као што научници користе модуларне инструменте који се могу конфигурисати за различите експерименте, ми ћемо користити HTML шаблоне као поново употребљиве компоненте које се могу приказати по потреби. Радићете са HTML шаблонима (поново употребљивим нацртима за различите екране), JavaScript рутама (системом који омогућава пребацивање између екрана) и API-јем историје прегледача (који омогућава да дугме за повратак ради како треба). Ово су исте основне технике које користе оквири као што су React, Vue и Angular. На крају, имаћете функционалну апликацију за банкарство која демонстрира професионалне принципе апликација са једном страницом. ## Квиз пре предавања [Квиз пре предавања](https://ff-quizzes.netlify.app/web/quiz/41) ### Шта ће вам бити потребно Биће нам потребан локални веб сервер за тестирање наше апликације за банкарство – не брините, то је лакше него што звучи! Ако га већ немате подешеног, само инсталирајте [Node.js](https://nodejs.org) и покрените `npx lite-server` из вашег пројектног фолдера. Ова корисна команда покреће локални сервер и аутоматски отвара вашу апликацију у прегледачу. ### Припрема На вашем рачунару, направите фолдер под називом `bank` са датотеком `index.html` унутар њега. Почећемо од овог HTML [основног шаблона](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Ево шта овај основни шаблон пружа:** - **Успоставља** структуру HTML5 документа са правилном декларацијом DOCTYPE-а - **Конфигурише** кодирање карактера као UTF-8 за подршку међународног текста - **Омогућава** одзивни дизајн са мета тагом за приказ за мобилну компатибилност - **Поставља** описни наслов који се појављује на картици прегледача - **Креира** чисту секцију тела где ћемо изградити нашу апликацију > 📁 **Преглед структуре пројекта** > > **На крају ове лекције, ваш пројекат ће садржати:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Одговорности датотека:** > - **index.html**: Садржи све шаблоне и пружа структуру апликације > - **app.js**: Управља рутама, навигацијом и управљањем шаблонима > - **Шаблони**: Дефинишу кориснички интерфејс за пријаву, контролни панел и друге екране --- ## HTML шаблони Шаблони решавају основни проблем у веб развоју. Када је Гутенберг изумео покретну штампарску машину 1440-их, схватио је да уместо да урезује целе странице, може да направи поново употребљиве блокове слова и да их распоређује по потреби. HTML шаблони функционишу на истом принципу – уместо да креирате засебне HTML датотеке за сваки екран, дефинишете поново употребљиве структуре које се могу приказати по потреби. Размислите о шаблонима као о нацртима за различите делове ваше апликације. Као што архитекта креира један нацрт и користи га више пута уместо да поново црта идентичне просторије, ми креирамо шаблоне једном и користимо их по потреби. Прегледач држи ове шаблоне скривеним док их JavaScript не активира. Ако желите да креирате више екрана за веб страницу, једно решење би било да направите једну HTML датотеку за сваки екран који желите да прикажете. Међутим, ово решење долази са одређеним непогодностима: - Морате поново учитати целу HTML датотеку приликом преласка на други екран, што може бити споро. - Тешко је делити податке између различитих екрана. Друга опција је да имате само једну HTML датотеку и дефинишете више [HTML шаблона](https://developer.mozilla.org/docs/Web/HTML/Element/template) користећи елемент `