# ಬ್ಯಾಂಕಿಂಗ್ ಆ್ಯಪ್ ಭಾಗ 1: ವೆಬ್ ಆ್ಯಪ್‍ನಲ್ಲಿ HTML ಟೆಂಪ್ಲೇಟ್ಗಳು ಮತ್ತು ಮಾರ್ಗಗಳು ```mermaid journey title ನಿಮ್ಮ ಬ್ಯಾಂಕಿಂಗ್ ಆಪ್ ಅಭಿವೃದ್ಧಿ ಯಾತ್ರೆ section SPA ಮೂಲಭೂತಗಳು ಒಪ್ಪಿಕೊಳ್ಳಿ ಸಿಂಗಲ್-ಪೇಜ್ ಆಪ್ಸ್: 3: Student ಟೆಂಪ್ಲೇಟ್ ಸಂ概念 ಕಲಿಯಿರಿ: 4: Student DOM манಿಪ್ಯುಲೇಶನ್ ಮಾ스터 ಮಾಡಿ: 4: Student section ಮಾರ್ಗದರ್ಶನ ವ್ಯವಸ್ಥೆಗಳು ಕ್ಲೈಂಟ್-ಸೈಡ್ ಮಾರ್ಗದರ್ಶನ ಅನುಷ್ಠಾನಗೊಳಿಸಿ: 4: Student ಬ್ರೌಸರ್ ಇತಿಹಾಸ ನಿರ್ವಹಿಸಿ: 5: Student ನಳೆಯದ ಯಂತ್ರಗಳನ್ನು ಸೃಷ್ಟಿಸಿ: 5: Student section ವೃತ್ತಿಪರ ಮಾದರಿಗಳು ಮಡ್ಯುಲರ್ ವಿನ್ಯಾಸ ನಿರ್ಮಿಸಿ: 5: Student ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನ್ವಯಿಸಿ: 5: Student ಬಳಕೆದಾರ ಅನುಭವಗಳನ್ನು ಸೃಷ್ಟಿಸಿ: 5: Student ``` 1969 ರಲ್ಲಿ Apollo 11 ಗೈಡ್ ಕಂಪ್ಯೂಟರ್ ಚಂದ್ರನ ಕಡೆಗೆ ನವಿಗೇಟ್ ಆದಾಗ, ಸಂಪೂರ್ಣ ಸಿಸ್ಟಮ್ ಮರುಪ್ರಾರಂಭಿಸದೆ ವಿಭಿನ್ನ ಕಾರ್ಯಕ್ರಮಗಳ ಮಧ್ಯೆ ಸ್ವಿಚ್ ಮಾಡಬೇಕಾಯಿತು. ಆಧುನಿಕ ವೆಬ್ ಆ್ಯಪ್‍ಗಳು ಕೂಡ ಇದೇ ರೀತಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ – ಅವು ನಿಮ್ಮೇ ಕಾಣುವ ವಸ್ತುಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮರುಲೋಡ್ ಮಾಡದೆ ಬದಲಿಸುತ್ತವೆ. ಇದು ಬಳಕೆದಾರರು ಇಂದಿನ ದಿನಗಳು ನಿರೀಕ್ಷಿಸುವ ಸ್ಮೂತ್, ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ಅನುಭವವನ್ನು ರಚಿಸುತ್ತದೆ. ಪ್ರತಿ ಸಂವಹನಕ್ಕಾಗಿ ಸಂಪೂರ್ಣ ಪುಟಗಳನ್ನು ಮರುಲೋಡ್ ಮಾಡುವ ಪರಿಕಲ್ಪನೆ ಇರುವ ಸಾಂಪ್ರದಾಯಿಕ ವೆಬ್‌ಸೈಟ್ಗಳಿಗೆ ಬದಲಾಗಿ, ಆಧುನಿಕ ವೆಬ್ ಆ್ಯಪ್‍ಗಳು ಬದಲಾವಣೆಗೆ ಅಗತ್ಯವಿರುವ ಭಾಗಗಳನ್ನು ಮಾತ್ರ నవೀನೀಕರಿಸುತ್ತವೆ. ಇದು ಮಿಷನ್ ಕಮೊಂಟ್ರೋಲ್ ವಿಭಿನ್ನ ಪ್ರದರ್ಶನಗಳ ಮಧ್ಯೆ ಸ್ವಿಚ್ ಮಾಡಿಕೊಳ್ಳುವ ಹಾಗೆ, ನಿರಂತರ ಸಂವಹನವನ್ನು ಕಾಪಾಡಿಕೊಂಡು, ದ್ರವ ಅನುಭವವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ ಈ ಅನ್ನುವುದು ಬಹಳ drಬ್ರವವಾಗಿ ಏಕೆ ಡ್ರಾಮ್ಯಾಟಿಕ್ ಆಗಿದೆ ಎಂಬುದನ್ನು ನೋಡೋಣ: | ಸಾಂಪ್ರದಾಯಿಕ ಬಹು ಪುಟ ಆ್ಯಪ್ಸ್ | ಆಧುನಿಕ ಏಕ ಪುಟ ಆ್ಯಪ್ಸ್ | |----------------------------|-------------------------| | **ನವಿಗೇಶನ್** | ಪ್ರತಿಯೊಂದು ಪರದೆಯೂ ಸಂಪೂರ್ಣ ಪುಟ ಮರುಲೋಡ್ | ಕ್ಷಣಿಕ ವಿಷಯ ಸ್ವಿಚ್ | | **ಕಾರ್ಯಕ್ಷಮತೆ** | ಸಂಪೂರ್ಣ HTML ಡೌನ್ಲೋಡ್‌ನಿಂದ ನಿಧಾನ | ಭಾಗಶಃ ನವೀಕರಣಗಳಿಂದ ವೇಗವಾಗಿ | | **ಬಳಕೆದಾರ ಅನುಭವ** | ಜಾರ్గಿಂಗ್ ಪುಟ ಗಾಳಿಸುವಿಕೆಗಳು | ನಿಘಂಟಾಗಿಯೂ ಆ್ಯಪ್ ಹೋಲಿದ ಟ್ರಾನ್ಸಿಷನ್ಗಳು | | **ಡೇಟಾ ಹಂಚಿಕೆ** | ಪುಟಗಳ ಮಧ್ಯೆ ಕಠಿಣ | ಸುಲಭ ಸ್ಥಿತಿ ನಿರ್ವಹಣೆ | | ** ಅಭಿವೃದ್ಧಿ ** | ಬಹು HTML ಕಡತೆಗಳನ್ನು ನಿರ್ವಹಣೆ | ಡೈನಾಮಿಕ್ ಟೆಂಪ್ಲೇಟ್ಗಳೊಂದಿಗೆ ಒಂಟಿ HTML | **ರೂಪಾಂತರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:** - **ಸಾಂಪ್ರದಾಯಿಕ ಆ್ಯಪ್‌ಗಳು** ಪ್ರತಿಯೊಂದು ನವಿಗೇಶನ್ ಕ್ರಿಯೆಗೆ ಸರ್ವರ್ ವಿನಂತಿಗಳನ್ನು ಅಗತ್ಯವಿರುತ್ತವೆ - **ಆಧುನಿಕ SPAs** ಒಂದು ಬಾರಿ ಲೋಡ್ ಆಗಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿ ವಿಷಯವನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ನವೀಕರಿಸುತ್ತವೆ - **ಬಳಕೆದಾರರ ನಿರೀಕ್ಷೆಗಳು** ಈಗ ತಕ್ಷಣದ, ನಿರಂತರ ಸಂವಹನಗಳಿಗೆ ಮೆಚ್ಚುಗೆ ನೀಡುತ್ತವೆ - **ಕಾರ್ಯಕ್ಷಮತೆ ಪ್ರಯೋಜನಗಳು** ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ ಕಡಿತ ಹಾಗೂ ವೇಗದ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಈ ಪಾಠದಲ್ಲಿ, ನಮ್ಮು ಬಹು ಪರದೆಗಳೊಂದಿಗೆ ಒಂದೇ ಕಾಂಟಿನ್ಯೂಸ್ ಫ್ಲೋ ಹೊಂದಿರುವ ಬ್ಯಾಂಕಿಂಗ್ ಆ್ಯಪ್ ಹತೋಟಿ ಮಾಡೋಣ. ವೈಜ್ಞಾನಿಕರು ವಿವಿಧ ಪ್ರಯೋಗಗಳಿಗೆ ಮರುರಚಿಸಲು ಸಾಧ್ಯವಾದ ಮಾಯಾ ಸಾಧನಗಳನ್ನು ಬಳಸುವ ಹಾಗೆ, ನಾವು HTML ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿತ ಘಟಕಗಳಾಗಿ ಬಳಸಿಕೊಂಡು ಅವುಗಳನ್ನು ನಾವು ಬೇಕಾದಂತೆ ಪ್ರದರ್ಶಿಸೋಣ. ನೀವು HTML ಟೆಂಪ್ಲೇಟ್ಗಳೊಂದಿಗೆ (ಸೇರಿಸಬಹುದಾದ ಬ್ಲೂಪ್ರಿಂಟ್‍ಗಳು), ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾರ್ಗಸೂಚಿ (ಪರದೆಗಳ ನಡುವೆ ಸ್ವಿಚ್ ಮಾಡುವ ವ್ಯವಸ್ಥೆ), ಮತ್ತು ಬ್ರೌಸರ್ ಇತಿಹಾಸ API (ಹಿಂದಿನ ಬಟನ್ ಅಭಿವೃದ್ದಿಯಾಗುತ್ತದೆ) ಸಹಿತ ಕೆಲಸ ಮಾಡುತ್ತೀರಿ. ಇವು React, Vue, Angular ಮತ್ತಿತರ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿಯೇ ಬಳಸುವ ಮೂಲತತ್ವ ತಿಳಿಯುವ ವಿಧಾನಗಳಾಗಿವೆ. ಕೊನೆಯಿಗೆ, ನೀವು ವೃತ್ತಿಪರ ಏಕ ಪುಟ ಆ್ಯಪ್ ತತ್ವಗಳನ್ನು ತೋರಿಸುವ ಕಾರ್ಯನಿರತ ಬ್ಯಾಂಕಿಂಗ್ ಆ್ಯಪ್ ಹೊಂದಿರುತ್ತೀರಿ. ```mermaid mindmap root((Single-Page Applications)) Architecture Template System Client-side Routing State Management Event Handling Templates ಮರುಬಳಕೆಗೊಡಬಹುದಾದ ಘಟಕಗಳು ಗತಿಶೀಲ ವಿಷಯ DOM ಅನುಷ್ಠಾನ ವಿಷಯ ಬದಲಾವಣೆ Routing URL ನಿರ್ವಹಣೆ ಇತಿಹಾಸ API ನ್ಯಾವಿಗೇಶನ್ ಲಾಜಿಕ್ ಬ್ರೌಸರ್ ಇಂಟಿಗ್ರೇಶನ್ User Experience ವೇಗದ ನ್ಯಾವಿಗೇಶನ್ ಸೊಗಸಾದ ಪರಿವರ್ತನೆಗಳು ಸಕಲ ಸ್ಥಿತಿ ಆಧುನಿಕ ಸಂವಹನಗಳು Performance ಕಡಿತಗೊಂಡ ಸರ್ವರ್ ವಿನಂತಿಗಳು ವೇಗವಾದ ಪುಟ ಪರಿವರ್ತನೆಗಳು ಸಮರ್ಥ ಸಂಪನ್ಮೂಲ ಬಳಕೆ ಉತ್ತಮ ಪ್ರತಿಕ್ರಿಯಾಶೀಲತೆ ``` ## ಮುಂಚಿನ ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ [ಮುಂಚಿನ ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](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 ``` **ಇದು ಬಾಯ್ಲರ್ ಪ್ಲೇಟ್ ಕೊಡುವದು:** - ಸೂಕ್ತ DOCTYPE ಸೂಚನೆಯೊಂದಿಗೆ HTML5 ಡಾಕ್ಯುಮೆಂಟ್ ರಚನೆ ಮಾಡುತ್ತದೆ - ಅಂತರರಾಷ್ಟ್ರೀಯ ಪಠ್ಯ ಬೆಂಬಲಕ್ಕಾಗಿ UTF-8 ಅಕ್ಷರ ಎನ್‌ಕೋಡಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ - ಮೊಬೈಲ್ ಹೊಂದಾಣಿಕೆಯViewport ಮेटಾ ಟ್ಯಾಗ್ ಬಳಸಿ ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ಡಿಸೈನ್ ಅನುಮತಿಸುತ್ತದೆ - ಬ್ರೌಸರ್ ಟ್ಯಾಬಿನಲ್ಲಿ ಕಾಣಿಸುವ ವಿವರಣಾತ್ಮಕ ಶೀರ್ಷಿಕೆ ಸೃಷ್ಟಿಸುತ್ತದೆ - ನಮ್ಮ ಆ್ಯಪ್ ನಿರ್ಮಿಸಲು ಸ್ವಚ್ಛವಾದ ಬಾಡಿ ವಿಭಾಗವನ್ನು ರಚಿಸುತ್ತದೆ > 📁 **ಪ್ರಾಜೆಕ್ಟ್ ಕ್ಕೆ ಕೆಳಗಿನ ಸಂರಚನೆ ಇದೆ preview** > > **ಈ ಪಾಠದ ಕೊನೆಯಲ್ಲಿ, ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಒಳಗೊಂಡಿರಲಿದೆ:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **ಫೈಲ್ ಜವಾಬ್ದಾರಿಗಳು:** > - **index.html**: ಎಲ್ಲಾ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿದ್ದು ಆ್ಯಪ್ ರಚನೆ ನೀಡುತ್ತದೆ > - **app.js**: ಮಾರ್ಗಸೂಚಿ, ನವಿಗೇಶನ್, ಮತ್ತು ಟೆಂಪ್ಲೇಟು ನಿರ್ವಹಣೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ > - **ಟೆಂಪ್ಲೇಟ್ಗಳು**: ಲಾಗಿನ್, ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮತ್ತು ಇತರೆ ಪರದೆಗಳಿಗೆ UI ವಿನ್ಯಾಸವನ್ನು ಸೂಚಿಸುತ್ತವೆ --- ## HTML ಟೆಂಪ್ಲೇಟ್ಗಳು ಟೆಂಪ್ಲೇಟ್ಗಳು ವೆಬ್ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಮೂಲಭೂತ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತವೆ. ಗುಟೆನ್‌ಬರ್ಗ್ 1440 ರಲ್ಲಿ ಚಲಿಸಲು ಸಾಧ್ಯವಾದ ಪ್ರಿಂಟಿಂಗ್ ಆವಿಷ್ಕರಿಸಿದ್ದಾಗ, ಸಂಪೂರ್ಣ ಪುಟಗಳನ್ನು ತೆಗೆಯುವ ಬದಲು ಮತ್ತೆಬಾರ್ನಾಗಿ ಬಳಸಬಹುದಾದ ಅಕ್ಷರ ಬ್ಲಾಕ್‌ಗಳನ್ನು ರಚಿಸಲು ಕಂಡುಹಿಡಿದು ಅದನ್ನು ಅಗತ್ಯವಾಗಿ ಅಳವಡಿಸತಕ್ಕಂತೆ ವ್ಯವಸ್ಥೆ ಮಾಡಿದರು. HTML ಟೆಂಪ್ಲೇಟ್ಗಳೂ ಇದೇ ತತ್ವದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ – ಪ್ರತಿ ಪರದೆಗೆ পৃথक HTML ಫೈಲ್ ರಚಿಸುವ ಬದಲಾಗಿ, ಅವು ಬಳಸಲು ಆಗುವ ರಚನೆಗಳನ್ನು ಪರಿಗಣಿಸಿ ಬೇಕಾದಾಗ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ```mermaid flowchart TD A["📋 ಟೆಂಪ್ಲೇಟ್ ವ್ಯಾಖ್ಯಾನ"] --> B["💬 ಡಿಒಎಂನಲ್ಲಿ ಮರೆಮಚಿವೆ"] B --> C["🔍 ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಹುಡುಕುತ್ತದೆ"] C --> D["📋 ಟೆಂಪ್ಲೇಟ್ ವಿಷಯವನ್ನು ನಕಲಿಸಿ"] D --> E["🔗 ದೃಶ್ಯಮಾನದ ಡಿಒಎಂಗಳಿಗೆ ಜೋಡಿಸಿ"] E --> F["👁️ ಬಳಕೆದಾರ ವೀಕ್ಷಿಸುತ್ತಾನೆ ವಿಷಯ"] G["ಲಾಗಿನ್ ಟೆಂಪ್ಲೇಟ್"] --> A H["ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಟೆಂಪ್ಲೇಟ್"] --> A I["ಭವಿಷ್ಯ ಟೆಂಪ್ಲೇಟುಗಳು"] --> A style A fill:#e3f2fd style D fill:#e8f5e8 style F fill:#fff3e0 style B fill:#f3e5f5 ``` ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ನಿಮ್ಮ ಆ್ಯಪ್‌ನ ವಿಭಿನ್ನ ಭಾಗಗಳ ಬ್ಲೂಪ್ರಿಂಟ್‌ಗಳಾಗಿ ಗ್ರೀತಿಯ ಬಗ್ಗೆ ಯೋಚಿಸಿ. ನಿರ್ಮಾಪಕರು ಒಂದು ಯೋಜನೆಯನ್ನು ಸೃಷ್ಟಿಸಿ ಅದನ್ನು ಹಲವಾರು ಬಾರಿ ಬಳಸುವಂತೆ, ನಾವು ಕೂಡ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಒಮ್ಮೆ ರಚಿಸಿ ಅವುಗಳನ್ನು ಆಗಾಗ್ಗೆ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತೇವೆ. ಬ್ರೌಸರ್ ಈ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ತೋರಿಸುತ್ತಿಲ್ಲ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಕ್ರಿಯೆಯ ವೇಳೆ ಅವು ಸಕ್ರಿಯಗೊಳ್ಳುತ್ತವೆ. ಒಂದು ವೆಬ್ ಪುಟಕ್ಕೆ ಬಹು ಸ್ಕ್ರೀನ್ ಗಳು ಬೇಕಾದರೆ, ಪ್ರತಿಯೊಂದು ಪರದೆಗಾಗಿ ಒಂದು HTML ಫೈಲ್ ರಚಿಸುವ ಒಂದು ಪರಿಹಾರ ಇರಬಹುದು. ಆದರೆ ಇದರಿಂದ ಕೆಲವು ಅಸೌಕರ್ಯಗಳು ಇವೆ: - ಸ್ಕ್ರೀನ್ ಬದಲಿಸುವಾಗ ಸಂಪೂರ್ಣ HTML ನವೀಕರಿಸಬೇಕಾಗುವದು, ಇದು ನಿಧಾನವಾಗಬಹುದು. - ವಿಭಿನ್ನ ಸ್ಕ್ರೀನ್‌ಗಳ ನಡುವಿನ ಡೇಟಾ ಹಂಚಿಕೊಳ್ಳುವುದು ಕಷ್ಟ. ಮತ್ತೊಂದು ವಿಧಾನವೆಂದರೆ ಒಂದೇ HTML ಫೈಲ್ ಇರಿಸುವುದು, ಮತ್ತು ಒಂದাধিক [HTML ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು](https://developer.mozilla.org/docs/Web/HTML/Element/template) `