Autor:
    Erstellung:2026-06-22Letzte Aktualisierung:2026-06-22

    Svelte Integration: usePathname Dokumentation

    Die Funktion usePathname gibt den aktuellen Browser-Pfadnamen (pathname) ohne das Locale-Segment als einen Svelte Readable<string> Store zurück. Sie ist nützlich für den Aufbau einer Locale-bewussten Navigation — zum Beispiel, um festzustellen, welches Navigationselement aktiv ist —, ohne das Locale-Präfix manuell entfernen zu müssen.

    Importieren von usePathname in Svelte

    typescript
    import { usePathname } from "svelte-intlayer";
    

    Überblick

    usePathname erstellt einen lesbaren Svelte-Store, der window.location.pathname liest, das Locale-Präfix über getPathWithoutLocale entfernt und einen neuen Wert ausgibt, wenn der Browser ein popstate-Ereignis auslöst (Zurück/Vorwärts-Navigation). Abonnieren Sie diesen Store mit der $ Store-Syntax in Komponenten.

    Verwendung

    src/components/NavItem.svelte
    <script lang="ts">
      import { usePathname } from "svelte-intlayer";
    
      export let href: string;
      export let label: string;
    
      const pathname = usePathname();
    </script>
    
    <a {href} aria-current={$pathname === href ? "page" : undefined}>
      {label}
    </a>
    

    Rückgabewert

    Typ Beschreibung
    Readable<string> Lesbarer Svelte-Store, der den aktuellen Pfadnamen ohne das Locale-Präfix enthält.

    Verhalten

    • Entfernen des Locales: Entfernt das führende Locale-Segment (z. B. /de/dashboard/dashboard).
    • Reaktiv: Gibt bei jedem popstate-Ereignis (Zurück / Vorwärts im Browser) einen neuen Wert aus.
    • SSR-sicher: Gibt "" zurück, wenn window nicht verfügbar ist.
    • Bereinigung (Cleanup): Der popstate-Listener wird automatisch entfernt, wenn der letzte Abonnent sich abmeldet.

    Beispiel

    src/components/Sidebar.svelte
    <script lang="ts">
      import { usePathname } from "svelte-intlayer";
    
      const links = [
        { href: "/dashboard", label: "Dashboard" },
        { href: "/settings", label: "Einstellungen" },
      ];
    
      const pathname = usePathname();
    </script>
    
    <nav>
      {#each links as link}
        <a
          href={link.href}
          style:font-weight={$pathname === link.href ? "bold" : "normal"}
        >
          {link.label}
        </a>
      {/each}
    </nav>
    

    Verwandt