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/sr/7-bank-project/1-template-route/assignment.md

58 lines
6.8 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-24T23:33:08+00:00",
"source_file": "7-bank-project/1-template-route/assignment.md",
"language_code": "sr"
}
-->
# Побољшање рутирања
## Упутства
Сада када сте направили основни систем рутирања, време је да га унапредите професионалним функцијама које побољшавају корисничко искуство и пружају боље алате за програмере. Апликације у стварном свету захтевају више од само промене шаблона потребни су им динамични наслови страница, lifecycle hooks и прошириве архитектуре.
У овом задатку, проширићете своју имплементацију рутирања са две суштинске функције које се често налазе у веб апликацијама у продукцији. Ова побољшања ће учинити вашу апликацију за банкарство професионалнијом и пружити основу за будуће функционалности.
Декларација рута тренутно садржи само ID шаблона који се користи. Али када се приказује нова страница, понекад је потребно мало више. Побољшајмо нашу имплементацију рутирања са две додатне функције:
### Функција 1: Динамични наслови страница
**Циљ:** Доделите наслове сваком шаблону и ажурирајте наслов прозора са овим новим насловом када се шаблон промени.
**Зашто је ово важно:**
- **Побољшава** корисничко искуство приказивањем описних наслова картица у прегледачу
- **Унапређује** приступачност за читаче екрана и помоћне технологије
- **Пружа** бољи контекст за обележавање и историју прегледача
- **Прати** најбоље праксе професионалног веб развоја
**Приступ имплементацији:**
- **Проширите** објекат рута да укључи информације о наслову за сваку руту
- **Измените** функцију `updateRoute()` да динамички ажурира `document.title`
- **Тестирајте** да се наслови правилно мењају приликом навигације између екрана
### Функција 2: Lifecycle Hooks за руте
**Циљ:** Додајте опцију за извршавање неког кода након промене шаблона. Желимо да се у конзоли за програмере испише `'Dashboard is shown'` сваки пут када се прикаже страница контролне табле.
**Зашто је ово важно:**
- **Омогућава** извршавање прилагођене логике када се учитају одређене руте
- **Пружа** hooks за аналитику, логовање или код за иницијализацију
- **Креира** основу за сложеније понашање рута
- **Демонстрира** образац посматрача у веб развоју
**Приступ имплементацији:**
- **Додајте** опционалну својство callback функције у конфигурације рута
- **Извршите** callback функцију (ако постоји) након завршетка рендеровања шаблона
- **Осигурајте** да функција ради за било коју руту са дефинисаним callback-ом
- **Тестирајте** да се порука у конзоли појављује приликом посете контролној табли
## Рубрика
| Критеријум | Изузетно | Прихватљиво | Потребно побољшање |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| | Две функције су имплементиране и раде. Додавање наслова и кода функционише и за нову руту додату у декларацију `routes`. | Две функције раде, али је понашање тврдо кодирано и није конфигурабилно преко декларације `routes`. Додавање треће руте са насловом и кодом не ради или ради делимично. | Једна од функција недостаје или не ради исправно. |
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.