usePathname

usePathname هو خطاف لمكون العميل (Client Component) يتيح لك قراءة مسار (pathname) عنوان URL الحالي.

'use client'

import { usePathname } from 'next/navigation'

export default function ExampleClientComponent() {
  const pathname = usePathname()
  return <p>Current pathname: {pathname}</p>
}
'use client'

import { usePathname } from 'next/navigation'

export default function ExampleClientComponent() {
  const pathname = usePathname()
  return <p>Current pathname: {pathname}</p>
}

يتطلب usePathname عمدًا استخدام مكون العميل (Client Component). من المهم ملاحظة أن مكونات العميل ليست تحسينًا سلبيًا، بل هي جزء أساسي من بنية مكونات الخادم (Server Components).

على سبيل المثال، سيتم عرض مكون العميل الذي يستخدم usePathname في HTML عند تحميل الصفحة الأولى. عند الانتقال إلى مسار جديد، لا يحتاج هذا المكون إلى إعادة جلب البيانات. بدلاً من ذلك، يتم تنزيل المكون مرة واحدة (في حزمة جافاسكريبت الخاصة بالعميل)، ويعاد عرضه بناءً على الحالة الحالية.

معلومة مفيدة:

المعاملات

const pathname = usePathname()

لا يأخذ usePathname أي معاملات.

القيم المُرجعة

يُرجع usePathname سلسلة تمثل مسار عنوان URL الحالي. على سبيل المثال:

URLالقيمة المُرجعة
/'/'
/dashboard'/dashboard'
/dashboard?v=2'/dashboard'
/blog/hello-world'/blog/hello-world'

أمثلة

تنفيذ إجراء استجابةً لتغيير المسار

'use client'

import { usePathname, useSearchParams } from 'next/navigation'

function ExampleClientComponent() {
  const pathname = usePathname()
  const searchParams = useSearchParams()
  useEffect(() => {
    // نفّذ شيئًا هنا...
  }, [pathname, searchParams])
}
'use client'

import { usePathname, useSearchParams } from 'next/navigation'

function ExampleClientComponent() {
  const pathname = usePathname()
  const searchParams = useSearchParams()
  useEffect(() => {
    // نفّذ شيئًا هنا...
  }, [pathname, searchParams])
}
الإصدارالتغييرات
v13.0.0تم تقديم usePathname.