Auteur:
    Création:2026-06-22Dernière mise à jour:2026-06-22

    Intégration avec Solid : Documentation du Hook usePathname

    Le hook usePathname retourne le chemin du navigateur (pathname) actuel avec le segment de locale supprimé, sous la forme d'un Accessor<string> de Solid. Il est utile pour la navigation liée à la langue — par exemple, déterminer quel élément de navigation est actif — sans avoir à supprimer manuellement le préfixe de la locale.

    Importer usePathname avec Solid

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

    Aperçu

    usePathname crée un signal réactif initialisé à partir de window.location.pathname, retire le préfixe de la locale via getPathWithoutLocale et met à jour le signal chaque fois que le navigateur déclenche un événement popstate (navigation retour/avant). L'écouteur d'événements est nettoyé automatiquement via onCleanup.

    Utilisation

    src/components/NavItem.tsx
    import type { Component } from "solid-js";import { usePathname } from "solid-intlayer";type NavItemProps = {  href: string;  label: string;};const NavItem: Component<NavItemProps> = ({ href, label }) => {  const pathname = usePathname();  return (    <a href={href} aria-current={pathname() === href ? "page" : undefined}>      {label}    </a>  );};export default NavItem;

    Valeur de retour

    Type Description
    Accessor<string> Accessor Solid (getter réactif) retournant le chemin (pathname) actuel sans le préfixe de la locale.

    Comportement

    • Suppression de la locale : Retire le segment de locale du début du chemin (par ex. /fr/dashboard/dashboard).
    • Réactif : Se met à jour automatiquement lors d'événements popstate (navigation retour / avant du navigateur).
    • Sûr pour SSR : Retourne "" quand window n'est pas disponible.
    • Nettoyage : L'écouteur popstate est retiré automatiquement via la fonction onCleanup de Solid.

    Exemple

    src/components/Sidebar.tsx
    import type { Component } from "solid-js";import { For } from "solid-js";import { usePathname } from "solid-intlayer";const links = [  { href: "/dashboard", label: "Tableau de bord" },  { href: "/settings", label: "Paramètres" },];const Sidebar: Component = () => {  const pathname = usePathname();  return (    <nav>      <For each={links}>        {({ href, label }) => (          <a            href={href}            style={{ "font-weight": pathname() === href ? "bold" : "normal" }}          >            {label}          </a>        )}      </For>    </nav>  );};export default Sidebar;

    Voir Aussi