# Створення банківського додатку Частина 1: HTML-шаблони та маршрути у веб-додатку Коли комп'ютер Apollo 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 для підтримки міжнародного тексту - **Дозволяє** адаптивний дизайн за допомогою мета-тега viewport для сумісності з мобільними пристроями - **Встановлює** описовий заголовок, який з'являється на вкладці браузера - **Створює** чистий розділ body, де ми будемо будувати наш додаток > 📁 **Попередній перегляд структури проекту** > > **До кінця цього уроку ваш проект буде містити:** > ``` > 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) за допомогою елемента `