useSearchParams для чтения query-параметров в Next.js. Создание ссылок в Next.js с помощью Link
Автор конспекта: Стогниева Виктория
1. Чтение параметров из URL: Хук useSearchParams 🔍
1.1. Что такое Query-параметры? ❓
Query-параметры (или параметры запроса) — это часть URL, которая идет после знака вопроса
(?). Они позволяют передавать на страницу небольшие фрагменты данных в формате "ключ=значение".
Рассмотрим на примере:
Здесь title=test и sort=asc — это и есть query-параметры, разделенные амперсандом (&).
1.2. Как получить данные с помощью useSearchParams 🛠️
В Next.js для доступа к этим параметрам используется специальный хук useSearchParams. Процесс
очень прост и состоит из трех шагов:
- Импортируйте хук из
next/navigation. - Вызовите его в вашем компоненте, чтобы получить доступ к объекту с параметрами.
- Используйте метод
.get()для получения значения нужного параметра, передав в него ключ в виде строки.
Это невероятно полезно для создания динамических страниц, где контент может меняться в зависимости
от URL, например, для фильтрации товаров в каталоге (?category=electronics) или отслеживания
рекламных кампаний (?utm_source=google).
1.3. Дополнительные возможности: Метод .has() ℹ️
На заметку: у объекта searchParams есть и другие полезные методы. Например, метод .has()
позволяет проверить, существует ли определенный параметр в URL. Он возвращает true (если
параметр есть) или false (если его нет).
2. Создание ссылок: Мощь компонента Link 🔗
2.1. Почему не обычный тег a? 🤔
Хотя стандартный HTML-тег <a> будет работать для создания ссылок, Next.js настоятельно
рекомендует другой подход для навигации внутри вашего приложения. Если вы используете <a> для
внутренних ссылок, вы можете столкнуться с предупреждением в консоли, которое, по сути, говорит:
«Не используйте тег <a> для навигации на внутренние страницы (например, на /profile или
/about)».
Это прямой намек от фреймворка, что существует более производительный и правильный способ.
2.2. Знакомство с Link: Лучший друг навигации 🚀
Next.js предоставляет специальный, усовершенствованный инструмент для навигации — компонент
<Link>. Он импортируется из next/link и используется вместо тега <a>.
Было (стандартный HTML):
Стало (рекомендуемый способ в Next.js):
2.3. Главное преимущество: Магия предзагрузки (Prefetching) ✨
Главный секрет и самое важное преимущество компонента <Link> — это предзагрузка (prefetching).
Что это значит?
- Как только ссылка, созданная с помощью
<Link>, появляется в области видимости пользователя (например, он доскроллил до нее) или пользователь наводит на нее курсор мыши,Next.jsв фоновом режиме автоматически начинает загружать код страницы, на которую эта ссылка ведет.
Результат для пользователя просто восхитителен: переходы по сайту ощущаются практически мгновенными.
"хоп кликаю на main опа а она уже загружена"
Благодаря предзагрузке страница уже готова к отображению к тому моменту, как пользователь решит на нее перейти.
2.4. Сравнительная таблица: <Link> против <a> 📊
Для наглядности сравним оба подхода при создании внутренних ссылок в приложении Next.js.



