# Jenga Programu ya Benki Sehemu ya 1: Violezo vya HTML na Njia katika Programu ya Wavuti Wakati kompyuta ya Apollo 11 iliongoza kwenda mwezini mwaka 1969, ilibidi ibadilishe kati ya programu tofauti bila kuwasha upya mfumo mzima. Programu za kisasa za wavuti hufanya kazi kwa njia sawa – zinabadilisha unachoona bila kupakia kila kitu kutoka mwanzo. Hii huunda uzoefu laini na wa haraka ambao watumiaji wanatarajia leo. Tofauti na tovuti za jadi ambazo hupakia upya kurasa nzima kwa kila mwingiliano, programu za wavuti za kisasa husasisha tu sehemu zinazohitaji kubadilishwa. Njia hii, kama jinsi udhibiti wa misheni unavyobadilisha kati ya maonyesho tofauti huku ukidumisha mawasiliano ya mara kwa mara, huunda uzoefu laini ambao tumekuwa tukitarajia. Hivi ndivyo tofauti inavyokuwa ya kushangaza: | Programu za Kurasa Nyingi za Jadi | Programu za Kurasa Moja za Kisasa | |----------------------------------|----------------------------------| | **Urambazaji** | Kupakia upya kurasa nzima kwa kila skrini | Kubadilisha maudhui papo hapo | | **Utendaji** | Polepole kwa sababu ya kupakua HTML nzima | Haraka na masasisho ya sehemu | | **Uzoefu wa Mtumiaji** | Mwangaza wa kurasa unaoshtua | Mabadiliko laini kama programu | | **Kushiriki Data** | Ngumu kati ya kurasa | Rahisi kudhibiti hali | | **Maendeleo** | Faili nyingi za HTML za kudumisha | HTML moja na violezo vya nguvu | **Kuelewa mabadiliko:** - **Programu za jadi** zinahitaji maombi ya seva kwa kila hatua ya urambazaji - **SPAs za kisasa** hupakia mara moja na kusasisha maudhui kwa nguvu kwa kutumia JavaScript - **Matarajio ya watumiaji** sasa yanapendelea mwingiliano wa papo hapo na laini - **Faida za utendaji** ni pamoja na kupunguza matumizi ya data na majibu ya haraka Katika somo hili, tutajenga programu ya benki yenye skrini nyingi zinazotiririka pamoja kwa urahisi. Kama jinsi wanasayansi wanavyotumia vyombo vya modular vinavyoweza kusanidiwa kwa majaribio tofauti, tutatumia violezo vya HTML kama vipengele vinavyoweza kutumika tena ambavyo vinaweza kuonyeshwa inapohitajika. Utatumia violezo vya HTML (michoro inayoweza kutumika tena kwa skrini tofauti), urambazaji wa JavaScript (mfumo unaobadilisha kati ya skrini), na API ya historia ya kivinjari (ambayo huweka kitufe cha kurudi kikifanya kazi kama inavyotarajiwa). Hizi ni mbinu za msingi zinazotumiwa na mifumo kama React, Vue, na Angular. Mwisho wa somo, utakuwa na programu ya benki inayofanya kazi ambayo inaonyesha kanuni za kitaalamu za programu za kurasa moja. ## Maswali ya Kabla ya Somo [Maswali ya kabla ya somo](https://ff-quizzes.netlify.app/web/quiz/41) ### Unachohitaji Tutahitaji seva ya wavuti ya ndani kujaribu programu yetu ya benki – usijali, ni rahisi kuliko inavyosikika! Ikiwa huna moja tayari, weka tu [Node.js](https://nodejs.org) na endesha `npx lite-server` kutoka kwenye folda ya mradi wako. Amri hii rahisi huanzisha seva ya ndani na kufungua programu yako moja kwa moja kwenye kivinjari. ### Maandalizi Kwenye kompyuta yako, tengeneza folda inayoitwa `bank` yenye faili inayoitwa `index.html` ndani yake. Tutaanza kutoka kwa [boilerplate ya HTML](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Hivi ndivyo boilerplate hii inavyotoa:** - **Inaanzisha** muundo wa hati ya HTML5 na tamko sahihi la DOCTYPE - **Inasanidi** usimbaji wa herufi kama UTF-8 kwa msaada wa maandishi ya kimataifa - **Inawezesha** muundo unaojibika na tagi ya meta ya viewport kwa utangamano wa simu - **Inaweka** kichwa cha kuelezea kinachoonekana kwenye kichupo cha kivinjari - **Inaunda** sehemu safi ya mwili ambapo tutajenga programu yetu > πŸ“ **Muhtasari wa Muundo wa Mradi** > > **Mwisho wa somo hili, mradi wako utakuwa na:** > ``` > bank/ > β”œβ”€β”€ index.html > β”œβ”€β”€ app.js > └── style.css > ``` > > **Majukumu ya faili:** > - **index.html**: Ina violezo vyote na hutoa muundo wa programu > - **app.js**: Inashughulikia urambazaji, uelekezaji, na usimamizi wa violezo > - **Violezo**: Hufafanua UI kwa kuingia, dashibodi, na skrini nyingine --- ## Violezo vya HTML Violezo hutatua tatizo la msingi katika maendeleo ya wavuti. Wakati Gutenberg aligundua uchapishaji wa herufi zinazoweza kusogezwa katika miaka ya 1440, aligundua kuwa badala ya kuchonga kurasa nzima, angeweza kuunda vizuizi vya herufi vinavyoweza kutumika tena na kuviweka kama inavyohitajika. Violezo vya HTML hufanya kazi kwa kanuni sawa – badala ya kuunda faili tofauti za HTML kwa kila skrini, unafafanua miundo inayoweza kutumika tena ambayo inaweza kuonyeshwa inapohitajika. Fikiria violezo kama michoro ya sehemu tofauti za programu yako. Kama vile mbunifu anavyounda mchoro mmoja na kuutumia mara nyingi badala ya kuchora vyumba vinavyofanana tena, tunaunda violezo mara moja na kuvitumia inapohitajika. Kivinjari huweka violezo hivi vimefichwa hadi JavaScript inapoviamsha. Ikiwa unataka kuunda skrini nyingi kwa ukurasa wa wavuti, suluhisho moja litakuwa kuunda faili moja ya HTML kwa kila skrini unayotaka kuonyesha. Hata hivyo, suluhisho hili lina usumbufu fulani: - Unalazimika kupakia upya HTML nzima unaposwitch skrini, ambayo inaweza kuwa polepole. - Ni vigumu kushiriki data kati ya skrini tofauti. Njia nyingine ni kuwa na faili moja ya HTML, na kufafanua violezo vingi vya [HTML](https://developer.mozilla.org/docs/Web/HTML/Element/template) kwa kutumia kipengele cha `