Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Первоначальная документация"v9.0.022.06.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Документация: Функция comparePaths в intlayer
Описание
Функция comparePaths сравнивает два URL или пути на равенство, игнорируя сегмент локали, протокол/хост, строку запроса (query string), хэш и конечные слэши. Это рекомендуемый способ определения, указывает ли навигационная ссылка на текущую страницу (например, для выделения активной ссылки), без необходимости писать собственную (склонную к ошибкам) логику нормализации.
Внутри она повторно использует getPathWithoutLocale для удаления сегмента локали, поэтому она учитывает ваш настроенный режим маршрутизации и локали.
Пакет также экспортирует базовый помощник normalizePath, который возвращает канонический путь, независимый от локали, используемый для сравнения.
Ключевые особенности:
- Сравнение независимо от локали (
/ru/aboutсовпадает с/about) - Работает как с абсолютными URL, так и с относительными путями
- Игнорирует строку запроса, хэш и конечные слэши
- Допускает отсутствие начальных слэшей и пустые значения (нормализуется к
/) - Легковесная — построена поверх
getPathWithoutLocale
Сигнатура функции
Копировать код в буфер обмена
comparePaths( pathname: string, // Обязательно href: string, // Обязательно locales?: Locales[] // Необязательно): booleannormalizePath( inputUrl: string, // Обязательно locales?: Locales[] // Необязательно): stringПараметры
pathname: string- Описание: Первая строка URL или путь для сравнения (обычно текущий путь).
- Тип:
string - Обязательно: Да
href: string- Описание: Вторая строка URL или путь для сравнения (обычно
hrefнавигационной ссылки). - Тип:
string - Обязательно: Да
- Описание: Вторая строка URL или путь для сравнения (обычно
locales: Locales[]- Описание: Необязательный массив поддерживаемых локалей. По умолчанию используются локали, настроенные в проекте.
- Тип:
Locales[] - Обязательно: Нет (Необязательно)
Возвращает
- Тип:
boolean - Описание:
true, когда оба входа разрешаются в один и тот же путь, независимый от локали, иначеfalse.
Пример использования
Базовое использование
Копировать код в буфер обмена
import { comparePaths } from "intlayer";
comparePaths("/ru/path", "/path"); // true
comparePaths("/ru/path/", "/path"); // true
comparePaths("/ru/path", "/path/"); // true
comparePaths("/ru/", "/"); // true
comparePaths("/ru", "/"); // true
comparePaths("ru/path", "/path"); // true
comparePaths("", "/"); // true
comparePaths("/ru", ""); // true
comparePaths("/ru/path", "/other"); // falseАбсолютные и относительные URL
Копировать код в буфер обмена
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueВыделение активной навигационной ссылки
Копировать код в буфер обмена
import { comparePaths } from "intlayer";import { useLocation } from "react-router";const NavLink = ({ href, children }) => { const { pathname } = useLocation(); const isActive = comparePaths(pathname, href); return ( <a href={href} aria-current={isActive ? "page" : undefined}> {children} </a> );};normalizePath
normalizePath возвращает канонический путь, независимый от локали, используемый comparePaths. Он удаляет сегмент локали, протокол/хост, строку запроса и хэш, обеспечивает наличие одного начального слэша, удаляет любые конечные слэши (кроме корня) и возвращает / для пустых значений.
Копировать код в буфер обмена
import { normalizePath } from "intlayer";
normalizePath("/ru/path"); // "/path"
normalizePath("/ru/path/"); // "/path"
normalizePath("ru/path"); // "/path"
normalizePath("/ru/"); // "/"
normalizePath("/ru"); // "/"
normalizePath(""); // "/"
normalizePath("https://example.com/ru/path"); // "/path"Связанные функции
getPathWithoutLocale: Удаляет сегмент локали из URL или пути.getPrefix: Определяет префикс URL для заданной локали.getLocalizedUrl: Генерирует локализованный URL для указанной локали.
TypeScript
Копировать код в буфер обмена
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;