You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/bg/7-bank-project/1-template-route/assignment.md

58 lines
7.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "df0dcecddcd28ea8cbf6ede0ad57d673",
"translation_date": "2025-10-24T22:49:08+00:00",
"source_file": "7-bank-project/1-template-route/assignment.md",
"language_code": "bg"
}
-->
# Подобряване на маршрутизацията
## Инструкции
Сега, след като сте изградили основна система за маршрутизация, е време да я подобрите с професионални функции, които подобряват потребителското изживяване и предоставят по-добри инструменти за разработчици. Реалните приложения се нуждаят от повече от просто превключване на шаблони те изискват динамични заглавия на страници, lifecycle hooks и разширяеми архитектури.
В това задание ще разширите вашата имплементация на маршрутизация с две основни функции, които често се срещат в уеб приложенията за производство. Тези подобрения ще направят вашето банково приложение по-изпипано и ще осигурят основа за бъдеща функционалност.
Декларацията за маршрути в момента съдържа само ID на шаблона, който да се използва. Но когато се показва нова страница, понякога е необходимо малко повече. Нека подобрим нашата имплементация на маршрутизация с две допълнителни функции:
### Функция 1: Динамични заглавия на страници
**Цел:** Дайте заглавия на всеки шаблон и актуализирайте заглавието на прозореца с това ново заглавие, когато шаблонът се промени.
**Защо това е важно:**
- **Подобрява** потребителското изживяване, като показва описателни заглавия на разделите на браузъра
- **Подобрява** достъпността за четци на екрана и помощни технологии
- **Осигурява** по-добър контекст за отметки и история на браузъра
- **Следва** професионалните практики за уеб разработка
**Подход за имплементация:**
- **Разширете** обекта с маршрути, за да включва информация за заглавие за всеки маршрут
- **Модифицирайте** функцията `updateRoute()`, за да актуализира динамично `document.title`
- **Тествайте** дали заглавията се променят правилно при навигация между екраните
### Функция 2: Lifecycle Hooks за маршрути
**Цел:** Добавете опция за изпълнение на код след промяна на шаблона. Искаме да отпечатаме `'Dashboard is shown'` в конзолата на разработчика всеки път, когато се показва страницата на таблото.
**Защо това е важно:**
- **Позволява** изпълнение на персонализирана логика при зареждане на конкретни маршрути
- **Осигурява** hooks за анализи, логове или инициализационен код
- **Създава** основа за по-сложни поведения на маршрути
- **Демонстрира** модела на наблюдател в уеб разработката
**Подход за имплементация:**
- **Добавете** опционално свойство за callback функция към конфигурациите на маршрути
- **Изпълнете** callback функцията (ако е налична) след завършване на рендирането на шаблона
- **Уверете се**, че функцията работи за всеки маршрут с дефиниран callback
- **Тествайте**, че съобщението в конзолата се появява при посещение на таблото
## Критерии за оценка
| Критерии | Отлично | Задоволително | Нуждае се от подобрение |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| | Двете функции са имплементирани и работят. Заглавието и добавянето на код работят и за нов маршрут, добавен в декларацията `routes`. | Двете функции работят, но поведението е твърдо кодирано и не е конфигурируемо чрез декларацията `routes`. Добавянето на трети маршрут със заглавие и добавяне на код не работи или работи частично. | Една от функциите липсва или не работи правилно. |
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.