useParams useParams يقرأ المعاملات

آخر تحديث: 2026-11-03

useParams useParams يقرأ المعاملات

يُعيد useParams كائنًا بقطع المسار الديناميكية للمسار المطابق حاليًا: حين يُكتب المسار /users/:id، يمنحك زيارة /users/42 الكائن { id: '42' }. تعتمد عليه صفحات التفاصيل والتعديل لمعرفة أي سجلّ تعرض، فوحدها URL تقود المحتوى. تذكّر أن المعامل دائمًا سلسلة نصية، فقارنه بـ Number(id) قبل أي فحص رقمي.

المجموعةالتوجيه وإدارة الحالة
النوعخطاف
منذ الإصدارReact Router 6.4

ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.

📝 الصيغة

import { useParams } from 'react-router-dom'

// Route: <Route path="/users/:id" element={<UserDetail />} />
function UserDetail() {
  const { id } = useParams()        // { id: '42' }, note that it is a string
  const user = users.find(u => u.id === id)
  return <h1>User {user?.name}</h1>
}

القيمة المرجعة:كائن مفاتيحه أسماء المعاملات المُعلَنة بـ : في المسار وقيمه قطع URL الفعلية (سلاسل نصية، مثل { id: '42' }).

▶ مثال

المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.

الناتج:

النقر على «زيارة /users/2» يغيّر المعامل إلى 2 وتعرض الصفحة بوب — نفس أثر useParams في قراءة قطعة ديناميكية من URL (عرض توضيحي محاكى).

💡 النقاط الأساسية

⚠️ تحذير المعامل دائمًا سلسلة نصية: id === 2 لن يكون صحيحًا أبدًا، فاستدعِ Number(id) أولًا أو قارن السلاسل باستمرار.
💡 نصيحة المعامل الاختياري بـ :id؟، والبديل العام بـ * (splat)؛ وفي المسارات المتداخلة يدمج useParams معاملات كل مسار أب.
ℹ️ ملاحظة لقراءة سلسلة الاستعلام (?tab=2) استخدم useSearchParams بدلًا منه.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

س هل يمنحني useParams رقمًا أم سلسلة نصية؟
ج سلسلة نصية. قطعة URL نصّها الطبيعة، فحوّلها بـ Number(id) عند الحاجة إلى قيمة رقمية.
س هل يُعاد تركيب المكوّن عند تغيّر المعامل؟
ج لا. الانتقال من /users/1 إلى /users/2 يغيّر المعاملات فقط ويُعاد استخدام نسخة المكوّن، فطلب بيانات يعتمد على id ينتمي إلى Effect بـ id في اعتماداته.
س كيف أُعلن عدة قطع ديناميكية؟
ج المسار /users/:uid/posts/:pid يُعلن عدة دفعة واحدة ويعيد useParams الكائن { uid, pid }.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%