Author:
    Creation:2026-06-22Last update:2026-06-22

    Solid Integration: usePathname हुक दस्तावेज़

    usePathname हुक वर्तमान ब्राउज़र पाथनेम (pathname) को locale सेगमेंट हटा कर, एक Solid Accessor<string> के रूप में लौटाता है। यह locale-आधारित नेविगेशन बनाने के लिए उपयोगी है — उदाहरण के लिए, यह निर्धारित करना कि कौन सा नेव (nav) आइटम सक्रिय है — बिना locale उपसर्ग को मैन्युअल रूप से हटाए।

    Solid में usePathname को आयात करना

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

    अवलोकन

    usePathname window.location.pathname से प्रारंभ किया गया एक प्रतिक्रियाशील (reactive) सिग्नल बनाता है, getPathWithoutLocale के माध्यम से locale उपसर्ग को हटाता है, और जब भी ब्राउज़र popstate इवेंट (बैक/फॉरवर्ड नेविगेशन) फायर करता है तो सिग्नल को अपडेट करता है। onCleanup के माध्यम से इवेंट श्रोता (event listener) स्वचालित रूप से साफ हो जाता है।

    उपयोग

    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> Solid Accessor (reactive getter) जो locale उपसर्ग के बिना वर्तमान पाथनेम (pathname) लौटाता है।

    व्यवहार

    • Locale को हटाना: लीडिंग locale सेगमेंट को हटा देता है (उदा. /hi/dashboard/dashboard)।
    • प्रतिक्रियाशील (Reactive): popstate इवेंट्स (ब्राउज़र बैक / फॉरवर्ड नेविगेशन) पर स्वचालित रूप से अपडेट होता है।
    • SSR-सुरक्षित: window उपलब्ध न होने पर "" लौटाता है।
    • क्लीनअप: popstate श्रोता Solid के onCleanup के माध्यम से स्वचालित रूप से हटा दिया जाता है।

    उदाहरण

    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 — वर्तमान locale + locale स्विचर
    • getPathWithoutLocale — वह अंतर्निहित उपयोगिता जिसका उपयोग इस हुक द्वारा किया जाता है