Autor:
    Criação:2026-06-22Última atualização:2026-06-22

    Integração com Svelte: Documentação da usePathname

    A função usePathname retorna o pathname atual do navegador com o segmento da locale removido, como um store Svelte Readable<string>. É útil para construir navegação com reconhecimento de locale — por exemplo, determinar qual item de navegação está ativo — sem ter que remover o prefixo da locale manualmente.

    Importando usePathname no Svelte

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

    Visão Geral

    usePathname cria um store legível Svelte que lê window.location.pathname, remove o prefixo da locale através de getPathWithoutLocale, e emite um novo valor sempre que o navegador dispara um evento popstate (navegação voltar/avançar). Subscreva com a sintaxe de store $ em componentes.

    Uso

    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>
    

    Valor de Retorno

    Tipo Descrição
    Readable<string> Store legível do Svelte contendo o pathname atual sem o prefixo da locale.

    Comportamento

    • Remoção da locale: Remove o segmento inicial da locale (ex: /pt/dashboard/dashboard).
    • Reativo: Emite um novo valor a cada evento popstate (navegação de voltar/avançar do navegador).
    • Seguro para SSR: Retorna "" quando window não está disponível.
    • Limpeza: O listener de popstate é removido automaticamente quando o último subscritor se desinscreve.

    Exemplo

    src/components/Sidebar.svelte
    <script lang="ts">
      import { usePathname } from "svelte-intlayer";
    
      const links = [
        { href: "/dashboard", label: "Dashboard" },
        { href: "/settings", label: "Configurações" },
      ];
    
      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>
    

    Relacionado