Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Initiale Dokumentation"v9.0.022.6.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenIf 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
Dokumentation: Funktion comparePaths in intlayer
Beschreibung
Die Funktion comparePaths vergleicht zwei URLs oder Pfade auf Gleichheit und ignoriert dabei das Locale-Segment, das Protokoll/den Host, die Suchanfrage (Query-String), den Hash und abschließende Schrägstriche (Trailing Slashes). Dies ist die empfohlene Methode, um festzustellen, ob ein Navigationslink auf die aktuelle Seite verweist — beispielsweise um den aktiven Link hervorzuheben —, ohne dass Sie eine eigene (fehleranfällige) Normalisierungslogik erstellen müssen.
Intern verwendet sie getPathWithoutLocale, um das Locale-Segment zu entfernen, sodass Ihr konfiguriertes Routing-Verfahren und Ihre Locales berücksichtigt werden.
Das Paket exportiert auch den zugrundeliegenden Helper normalizePath, der den kanonischen, Locale-unabhängigen Pfad für den Vergleich zurückgibt.
Hauptmerkmale:
- Locale-unabhängiger Vergleich (
/de/aboutentspricht/about) - Funktioniert sowohl mit absoluten URLs als auch mit relativen Pfaden
- Ignoriert Query-Strings, Hashes und abschließende Schrägstriche
- Toleriert fehlende führende Schrägstriche und leere Werte (normalisiert zu
/) - Leichtgewichtig — baut auf
getPathWithoutLocaleauf
Funktionssignatur
Kopieren Sie den Code in die Zwischenablage
comparePaths( pathname: string, // Erforderlich href: string, // Erforderlich locales?: Locales[] // Optional): booleannormalizePath( inputUrl: string, // Erforderlich locales?: Locales[] // Optional): stringParameter
pathname: string- Beschreibung: Der erste zu vergleichende URL-String oder Pfad (üblicherweise der aktuelle Pfad).
- Typ:
string - Erforderlich: Ja
href: string- Beschreibung: Der zweite zu vergleichende URL-String oder Pfad (üblicherweise das
hrefeines Navigationslinks). - Typ:
string - Erforderlich: Ja
- Beschreibung: Der zweite zu vergleichende URL-String oder Pfad (üblicherweise das
locales: Locales[]- Beschreibung: Optionales Array unterstützter Locales. Standardmäßig die im Projekt konfigurierten Locales.
- Typ:
Locales[] - Erforderlich: Nein (Optional)
Rückgabewert
- Typ:
boolean - Beschreibung:
true, wenn beide Eingaben auf denselben Locale-unabhängigen Pfad auflösen, ansonstenfalse.
Anwendungsbeispiel
Grundlegende Nutzung
Kopieren Sie den Code in die Zwischenablage
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"); // falseAbsolute und relative URLs
Kopieren Sie den Code in die Zwischenablage
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueHervorheben des aktiven Navigationslinks
Kopieren Sie den Code in die Zwischenablage
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 gibt den kanonischen, Locale-unabhängigen Pfad zurück, der von comparePaths verwendet wird. Es entfernt das Locale-Segment, das Protokoll/den Host, den Query-String und den Hash, stellt einen einzelnen führenden Schrägstrich sicher, entfernt jegliche abschließenden Schrägstriche (außer für das Stammverzeichnis) und greift für leere Werte auf / zurück.
Kopieren Sie den Code in die Zwischenablage
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"Verwandte Funktionen
getPathWithoutLocale: Entfernt das Locale-Segment aus einer URL oder einem Pfad.getPrefix: Ermittelt das URL-Präfix für ein bestimmtes Locale.getLocalizedUrl: Generiert eine lokalisierte URL für ein bestimmtes Locale.
TypeScript
Kopieren Sie den Code in die Zwischenablage
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;