# बैंकिङ एप निर्माण भाग १: वेब एपमा HTML टेम्प्लेट र रुटहरू जब अपोलो ११ को गाइडेन्स कम्प्युटरले सन् १९६९ मा चन्द्रमामा नेभिगेट गर्‍यो, त्यसले सम्पूर्ण प्रणाली पुनः सुरु नगरी विभिन्न प्रोग्रामहरू बीच स्विच गर्नुपर्‍यो। आधुनिक वेब एप्लिकेसनहरू पनि यस्तै काम गर्छन् – तिनीहरूले तपाईंलाई देखिने सामग्री परिवर्तन गर्छन् तर सबै कुरा पुनः लोड गर्दैनन्। यसले आजका प्रयोगकर्ताहरूले अपेक्षा गरेको सहज, प्रतिक्रियात्मक अनुभव सिर्जना गर्छ। परम्परागत वेबसाइटहरूले प्रत्येक अन्तरक्रियाको लागि सम्पूर्ण पृष्ठ पुनः लोड गर्छन् भने आधुनिक वेब एप्सले केवल परिवर्तन गर्नुपर्ने भागहरू अपडेट गर्छन्। यो दृष्टिकोण, मिशन कन्ट्रोलले विभिन्न डिस्प्लेहरू बीच स्विच गर्दा निरन्तर सञ्चार कायम राख्ने तरिकाको जस्तै, हामीले अपेक्षा गरेको तरल अनुभव सिर्जना गर्छ। यहाँ के कुराले फरक पार्छ: | परम्परागत मल्टि-पेज एप्स | आधुनिक सिंगल-पेज एप्स | |----------------------------|-------------------------| | **नेभिगेसन** | प्रत्येक स्क्रिनको लागि पूर्ण पृष्ठ पुनः लोड | सामग्री तुरुन्तै स्विच हुन्छ | | **प्रदर्शन** | सम्पूर्ण HTML डाउनलोडको कारण ढिलो | आंशिक अपडेटको कारण छिटो | | **प्रयोगकर्ता अनुभव** | पृष्ठ झिल्काहरू | सहज, एप-जस्तो ट्रान्जिसनहरू | | **डाटा साझेदारी** | पृष्ठहरू बीच कठिन | राज्य व्यवस्थापन सजिलो | | **विकास** | धेरै HTML फाइलहरू व्यवस्थापन गर्नुपर्ने | एकल HTML र गतिशील टेम्प्लेटहरू | **विकासको समझ:** - **परम्परागत एप्स** प्रत्येक नेभिगेसन कार्यको लागि सर्भर अनुरोध आवश्यक छ - **आधुनिक SPAs** एक पटक लोड हुन्छ र सामग्रीलाई जाभास्क्रिप्ट प्रयोग गरेर गतिशील रूपमा अपडेट गर्छ - **प्रयोगकर्ता अपेक्षाहरू** अब तुरुन्त, सहज अन्तरक्रियाहरूलाई प्राथमिकता दिन्छ - **प्रदर्शन लाभहरू** ब्यान्डविथ कम र छिटो प्रतिक्रिया समावेश गर्दछ यस पाठमा, हामी धेरै स्क्रिनहरू भएको बैंकिङ एप निर्माण गर्नेछौं जसले सहज रूपमा काम गर्छ। वैज्ञानिकहरूले विभिन्न प्रयोगहरूको लागि पुनः कन्फिगर गर्न सकिने मोड्युलर उपकरणहरू प्रयोग गर्ने तरिकाको जस्तै, हामी HTML टेम्प्लेटहरूलाई पुनः प्रयोग गर्न सकिने कम्पोनेन्टको रूपमा प्रयोग गर्नेछौं। तपाईं HTML टेम्प्लेटहरू (विभिन्न स्क्रिनहरूको लागि पुनः प्रयोग गर्न सकिने ब्लूप्रिन्टहरू), जाभास्क्रिप्ट रुटिङ (स्क्रिनहरू बीच स्विच गर्ने प्रणाली), र ब्राउजरको इतिहास 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 कन्फिगर गर्छ अन्तर्राष्ट्रिय पाठ समर्थनको लागि - **उत्तरदायी डिजाइन सक्षम बनाउँछ** मोबाइल अनुकूलता लागि viewport meta tag प्रयोग गरेर - **वर्णनात्मक शीर्षक सेट गर्छ** जुन ब्राउजर ट्याबमा देखिन्छ - **सफा बडी सेक्सन सिर्जना गर्छ** जहाँ हामी हाम्रो एप निर्माण गर्नेछौं > 📁 **प्रोजेक्ट संरचना पूर्वावलोकन** > > **पाठको अन्त्यसम्ममा, तपाईंको प्रोजेक्टमा समावेश हुनेछ:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **फाइल जिम्मेवारीहरू:** > - **index.html**: सबै टेम्प्लेटहरू समावेश गर्दछ र एप संरचना प्रदान गर्छ > - **app.js**: रुटिङ, नेभिगेसन, र टेम्प्लेट व्यवस्थापन सम्हाल्छ > - **टेम्प्लेटहरू**: लगइन, ड्यासबोर्ड, र अन्य स्क्रिनहरूको UI परिभाषित गर्छ --- ## HTML टेम्प्लेटहरू टेम्प्लेटहरूले वेब विकासमा आधारभूत समस्याको समाधान गर्छन्। जब गुटेनबर्गले १४४० को दशकमा चलायमान टाइप प्रिन्टिङ आविष्कार गरे, उनले सम्पूर्ण पृष्ठहरू कोर्ने सट्टा पुनः प्रयोग गर्न सकिने अक्षर ब्लकहरू सिर्जना गर्न सकिने महसुस गरे। HTML टेम्प्लेटहरू पनि यही सिद्धान्तमा काम गर्छन् – प्रत्येक स्क्रिनको लागि अलग HTML फाइलहरू सिर्जना गर्ने सट्टा, तपाईं पुनः प्रयोग गर्न सकिने संरचनाहरू परिभाषित गर्नुहुन्छ जुन आवश्यक पर्दा प्रदर्शन गर्न सकिन्छ। टेम्प्लेटहरूलाई तपाईंको एपका विभिन्न भागहरूको ब्लूप्रिन्टको रूपमा सोच्नुहोस्। जस्तै एक आर्किटेक्टले एक ब्लूप्रिन्ट बनाउँछ र समान कोठाहरू पुनः कोर्ने सट्टा धेरै पटक प्रयोग गर्छ, हामी एक पटक टेम्प्लेटहरू बनाउँछौं र आवश्यक पर्दा तिनीहरूलाई प्रयोग गर्छौं। ब्राउजरले यी टेम्प्लेटहरूलाई लुकाएर राख्छ जबसम्म जाभास्क्रिप्टले तिनीहरूलाई सक्रिय गर्दैन। यदि तपाईं वेब पृष्ठको लागि धेरै स्क्रिनहरू सिर्जना गर्न चाहनुहुन्छ भने, एउटा समाधान भनेको तपाईंले देखाउन चाहनुभएको प्रत्येक स्क्रिनको लागि एउटा HTML फाइल बनाउनु हो। तर, यो समाधानले केही असुविधा ल्याउँछ: - स्क्रिन स्विच गर्दा सम्पूर्ण HTML पुनः लोड गर्नुपर्छ, जसले गर्दा ढिलो हुन सक्छ। - विभिन्न स्क्रिनहरू बीच डाटा साझा गर्न गाह्रो हुन्छ। अर्को दृष्टिकोण भनेको केवल एक HTML फाइल राख्नु हो, र `