URL-параметри
Уявімо сайт інтернет-магазину і його сторінку всіх товарів на якій рендериться перелік всіх товарів
В такому разі при натисканні на один конкретний товар ми хочемо перейти на сторінку цього товару, яка виглядатиме так:
Для кожного конкретного товару буде братися з бази даних свій контент і рендеритися унікальна сторінка товару. В цьому випадку назва конкретного товару (або id) в адресному рядку браузера буде динамічним параметром. Його назва однакова, а от значення будуть різні. Це як функція, яка приймає параметр з однією назвою, але різними значеннями та проводить подальші дії з отриманим значенням параметру.
За допомогою динамічних параметрів можна оголосити шаблон адреси, частина якого матиме довільне значення. В такому разі структура сторінки буде однакова, тільки вміст (текст, підписи, зображення) динамічно мінятиметься в залежності від параметру в адресному рядку. Щоб не робити тисячі маршрутів для кожної такої сторінки, робиться один маршрут і з описом динамічного параметру.
Щоб вказати змінну частину в URL перед іменем параметра ставлять символ двокрапку (:).
Тут productId - зміна частина. В залежності від того, який параметр буде передано в адресному рядку і завантажується відповідна сторінка. Наприклад /products/iphone-14 або /products/samsung-android.
Імʼя URL-параметра може бути довільним, але воно має бути зрозумілим та описовим.
Розглянемо приклад сайту раніше згадуваної веб-студії, де кожен приклад виконаного проєкту буде рендеритися за унікальним динамічним параметром
Значення параметра повинно бути унікальне. Зазвичай для його формування використовують якийсь лічильники з бази даних. Якшо ви зочете використовувати описове значення, то при його створенні у базі даних або обʼєкті потрібно перевіряти чи воно не повторюється.
Хук useParams повертає об'єкт з усіма динамічними параметрами, які є в поточному URL. Імʼя параметра буде іменем властивості, а його значення - таке як в адресному рядку. До прикладу розглянемо вище описаний маршрут
Щоб у компоненті <WorkDetails /> зрендерити унікальний контент за динамічним параметром workId, переданим в адресному рядку використаємо хук useParams.
Маючи значення параметра можна зробити запит на бекенд та отримати повну інформацію про приклад цієї роботи за її id. А після цього підверстати дані на сторінці.
Може передаватися через URL кілька параметрів. Наприклад для вибірки якогось товару за фірмою і кольором. Розглянемо такий маршрут: /product/:developer/:color. І, наприклад в адресному рядку браузера буде /product/samsung/red
Last updated