Автор:
    Дата створення:2026-06-22Останнє оновлення:2026-06-22

    Інтеграція з Solid: Документація хука usePathname

    Хук usePathname повертає поточний шлях (pathname) браузера із видаленим сегментом локалі, у вигляді Accessor<string> для Solid. Це корисно для навігації з урахуванням локалі — наприклад, для визначення активного пункту меню — без необхідності вручну видаляти префікс локалі.

    Імпорт usePathname в Solid

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

    Огляд

    usePathname створює реактивний сигнал, що ініціалізується з window.location.pathname, видаляє префікс локалі через getPathWithoutLocale і оновлює сигнал кожного разу, коли браузер викликає подію popstate (навігація назад/вперед). Слухач подій автоматично очищається за допомогою onCleanup.

    Використання

    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;

    Значення, що повертається

    Тип Опис
    Accessor<string> Accessor для Solid (реактивний геттер), що повертає поточний шлях (pathname) без префікса локалі.

    Поведінка

    • Видалення локалі: Видаляє початковий сегмент локалі (наприклад, /uk/dashboard/dashboard).
    • Реактивність: Автоматично оновлюється під час подій popstate (навігація назад/вперед у браузері).
    • Безпека для SSR: Повертає "", якщо об'єкт window недоступний.
    • Очищення: Слухач popstate автоматично видаляється через onCleanup у Solid.

    Приклад

    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: "Дашборд" },  { href: "/settings", label: "Налаштування" },];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;

    Пов'язані хуки

    • useLocale — поточна локаль + перемикач локалей
    • getPathWithoutLocale — базова утиліта, яку використовує цей хук