استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "إضافة أداة usePathname"v10.0.0٢٣/٦/٢٠٢٦
- "تهيئة السجل"v8.2.0٢٢/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
تكامل Next.js: توثيق Hook usePathname
يُرجع الخطاف usePathname مسار Next.js الحالي مع إزالة مقطع اللغة (locale). يعد هذا مفيدًا لبناء تنقل يراعي اللغة — على سبيل المثال، تحديد عنصر التنقل النشط — دون الحاجة إلى إزالة بادئة اللغة يدويًا.
استيراد usePathname في Next.js
نسخ الكود إلى الحافظة
import { usePathname } from "next-intlayer";نظرة عامة
يقوم usePathname بتغليف usePathname() المدمج في Next.js والمستورد من next/navigation، ويقوم بإضافة أية معلمات بحث (search params)، ثم يزيل بادئة اللغة عبر getPathWithoutLocale. يعيد هذا الخطاف تصيير المكون (re-render) عند كل انتقال (navigation) يتم من جانب العميل. هذا الخطاف متاح فقط في مكونات العميل (يتطلب "use client").
الاستخدام
نسخ الكود إلى الحافظة
"use client";
import type { FC } from "react";
import { usePathname } from "next-intlayer";
type NavItemProps = {
href: string;
label: string;
};
const NavItem: FC<NavItemProps> = ({ href, label }) => {
const pathname = usePathname();
const isActive = pathname === href;
return (
<a href={href} aria-current={isActive ? "page" : undefined}>
{label}
</a>
);
};
export default NavItem;القيمة المرجعة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| النوع | الوصف |
|---|---|
string | المسار الحالي مع إزالة بادئة اللغة ومعلمات استعلام اللغة. |
السلوك
- إزالة اللغة: يزيل مقطع اللغة الرائد (مثل
/ar/dashboard←/dashboard). - إزالة معلمة البحث: يزيل أيضًا معلمة استعلام
?locale=...عندما يتم استخدام وضع توجيه معلمات البحث. - تفاعلي: يتم تحديثه في كل مرة يحدث فيها انتقال من جانب العميل عبر Next.js App Router.
- آمن مع العرض من جانب الخادم (SSR): يُرجع مسار الخادم أثناء العرض الأول (first render)، ثم يُزامن معلمات البحث على جانب العميل.
مقارنة مع useLocale
يقوم useLocale من next-intlayer بالفعل بتوفير pathWithoutLocale كجزء من قيمته المرجعة. استخدم usePathname عندما تحتاج فقط إلى المسار ولا تحتاج إلى وظيفة تبديل اللغة.
نسخ الكود إلى الحافظة
// عندما تحتاج إلى حالة اللغة والمسار معًا:
import { useLocale } from "next-intlayer";
const { locale, pathWithoutLocale } = useLocale();
// عندما تحتاج إلى المسار فقط:
import { usePathname } from "next-intlayer";
const pathname = usePathname();مثال
نسخ الكود إلى الحافظة
"use client";
import type { FC } from "react";
import { usePathname } from "next-intlayer";
const links = [
{ href: "/dashboard", label: "لوحة التحكم" },
{ href: "/settings", label: "الإعدادات" },
];
const Sidebar: FC = () => {
const pathname = usePathname();
return (
<nav>
{links.map(({ href, label }) => (
<a
key={href}
href={href}
style={{ fontWeight: pathname === href ? "bold" : "normal" }}
>
{label}
</a>
))}
</nav>
);
};
export default Sidebar;ذو صلة
useLocale— اللغة الحالية + مبدل اللغة (كما يوفرpathWithoutLocale)getPathWithoutLocale— الأداة الأساسية التي يعتمد عليها هذا الخطاف