# Gumawa ng Banking App Bahagi 1: HTML Templates at Routes sa isang Web App Noong ginabayan ng Apollo 11's guidance computer ang paglalakbay patungong buwan noong 1969, kinakailangan nitong magpalit-palit ng iba't ibang programa nang hindi nire-restart ang buong sistema. Ang mga modernong web application ay gumagana sa parehong paraan – binabago ang nakikita mo nang hindi nire-reload ang lahat mula sa simula. Ito ang nagbibigay ng makinis at mabilis na karanasan na inaasahan ng mga gumagamit ngayon. Hindi tulad ng tradisyunal na mga website na nire-reload ang buong pahina sa bawat interaksyon, ang mga modernong web app ay ina-update lamang ang mga bahagi na kailangang baguhin. Ang ganitong paraan, katulad ng kung paano nagpalit-palit ang mission control ng iba't ibang display habang pinapanatili ang tuloy-tuloy na komunikasyon, ang nagbibigay ng fluid na karanasan na inaasahan natin. Narito ang mga dahilan kung bakit napakalaki ng pagkakaiba: | Tradisyunal na Multi-Page Apps | Modernong Single-Page Apps | |----------------------------|-------------------------| | **Pag-navigate** | Buong page reload sa bawat screen | Instant na pagpapalit ng content | | **Performance** | Mas mabagal dahil sa kumpletong pag-download ng HTML | Mas mabilis gamit ang partial updates | | **User Experience** | Biglaang pag-flash ng pahina | Makinis, parang app na transitions | | **Pagbabahagi ng Data** | Mahirap sa pagitan ng mga pahina | Madaling state management | | **Pag-develop** | Maraming HTML files na kailangang i-maintain | Isang HTML na may dynamic templates | **Pag-unawa sa ebolusyon:** - **Tradisyunal na apps** ay nangangailangan ng server requests para sa bawat navigation action - **Modernong SPAs** ay naglo-load nang isang beses at ina-update ang content dynamically gamit ang JavaScript - **Inaasahan ng mga gumagamit** ngayon ang instant at seamless na interaksyon - **Mga benepisyo sa performance** kabilang ang mas mababang bandwidth at mas mabilis na tugon Sa leksyong ito, gagawa tayo ng banking app na may maraming screen na tuloy-tuloy ang daloy. Katulad ng kung paano ginagamit ng mga siyentipiko ang modular na mga instrumento na maaaring i-reconfigure para sa iba't ibang eksperimento, gagamit tayo ng HTML templates bilang reusable components na maaaring ipakita kung kinakailangan. Magagamit mo ang HTML templates (mga reusable na blueprint para sa iba't ibang screen), JavaScript routing (ang sistema na nagpapalit-palit ng mga screen), at ang browser's history API (na nagpapanatili ng tamang paggana ng back button). Ang mga ito ay parehong mga pangunahing teknik na ginagamit ng mga framework tulad ng React, Vue, at Angular. Sa dulo, magkakaroon ka ng gumaganang banking app na nagpapakita ng mga prinsipyo ng propesyonal na single-page application. ## Pre-Lecture Quiz [Pre-lecture quiz](https://ff-quizzes.netlify.app/web/quiz/41) ### Mga Kailangan Mo Kakailanganin natin ng lokal na web server para i-test ang ating banking app – huwag mag-alala, madali lang ito! Kung wala ka pang naka-set up, mag-install lang ng [Node.js](https://nodejs.org) at i-run ang `npx lite-server` mula sa iyong project folder. Ang handy na command na ito ay magpapagana ng lokal na server at awtomatikong bubuksan ang iyong app sa browser. ### Paghahanda Sa iyong computer, gumawa ng folder na pinangalanang `bank` na may file na pinangalanang `index.html` sa loob nito. Magsisimula tayo mula sa HTML [boilerplate](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Narito ang ibinibigay ng boilerplate na ito:** - **Itinatag** ang HTML5 document structure na may tamang DOCTYPE declaration - **Kinonfigura** ang character encoding bilang UTF-8 para sa suporta sa international text - **Pinagana** ang responsive design gamit ang viewport meta tag para sa mobile compatibility - **Nag-set** ng descriptive title na lumalabas sa browser tab - **Gumawa** ng malinis na body section kung saan natin itatayo ang ating application > πŸ“ **Preview ng Project Structure** > > **Sa dulo ng leksyong ito, ang iyong proyekto ay magkakaroon ng:** > ``` > bank/ > β”œβ”€β”€ index.html > β”œβ”€β”€ app.js > └── style.css > ``` > > **Mga responsibilidad ng file:** > - **index.html**: Naglalaman ng lahat ng templates at nagbibigay ng app structure > - **app.js**: Nagha-handle ng routing, navigation, at template management > - **Templates**: Nagde-define ng UI para sa login, dashboard, at iba pang screen --- ## HTML Templates Ang templates ay nagso-solve ng pangunahing problema sa web development. Noong naimbento ni Gutenberg ang movable type printing noong 1440s, napagtanto niya na sa halip na mag-ukit ng buong pahina, maaari siyang gumawa ng reusable na mga letra at ayusin ang mga ito kung kinakailangan. Ang HTML templates ay gumagana sa parehong prinsipyo – sa halip na gumawa ng magkakahiwalay na HTML files para sa bawat screen, magde-define ka ng reusable na mga istruktura na maaaring ipakita kung kinakailangan. Isipin ang templates bilang mga blueprint para sa iba't ibang bahagi ng iyong app. Katulad ng isang arkitekto na gumagawa ng isang blueprint at ginagamit ito nang maraming beses sa halip na muling iguhit ang magkaparehong mga kwarto, gagawa tayo ng templates nang isang beses at gagamitin ito kung kinakailangan. Itinatago ng browser ang mga templates na ito hanggang sa i-activate ng JavaScript. Kung gusto mong gumawa ng maraming screen para sa isang web page, isang solusyon ay gumawa ng isang HTML file para sa bawat screen na gusto mong ipakita. Gayunpaman, ang solusyong ito ay may ilang abala: - Kailangan mong i-reload ang buong HTML kapag nagpapalit ng screen, na maaaring mabagal. - Mahirap magbahagi ng data sa pagitan ng iba't ibang screen. Ang isa pang paraan ay magkaroon lamang ng isang HTML file, at mag-define ng maraming [HTML templates](https://developer.mozilla.org/docs/Web/HTML/Element/template) gamit ang `