تخطَّ إلى المحتوى

useId()

معرّف فريد ثابت بين الخادم والمتصفح useId()

useId يولّد معرّفًا فريدًا مناسبًا لخصائص إمكانية الوصول (accessibility)، متطابقًا بين رسم الخادم ورسم المتصفح.

useId() تُرجع نصًا فريدًا مرتبطًا باستدعاء الخطّاف في تلك النسخة تحديدًا من المكوّن. ميزته الأساسية: يعمل بشكل متطابق عند التصيير من الخادم (SSR) ثم عند الـ hydration في المتصفح، فلا يحدث تعارض بين المعرّفات.

يُستخدَم لربط عناصر النموذج بعضها ببعض عبر خصائص accessibility مثل htmlFor أو aria-describedby، خصوصًا عندما يُرسَم نفس المكوّن أكثر من مرة في الصفحة فتتجنّب تصادم أي id ثابت مكتوب يدويًا.

الصياغة

const id = useId();

📄 مثال

function PasswordField() {
  const hintId = useId();
  return (
    <>
      <label>
        كلمة المرور
        <input type="password" aria-describedby={hintId} />
      </label>
      <p id={hintId}>يجب أن تحتوي 8 خانات على الأقل</p>
    </>
  );
}

💡 نصائح عملية

  • استدعِه مرة واحدة في المكوّن وأعد استخدام نفس المعرّف لعدة خصائص مرتبطة (id، htmlFor، aria-describedby)
  • لا يحتاج وسائط — لا تستدعه داخل حلقة أو شرط، فقط على المستوى الأعلى للمكوّن

⚠️ أخطاء شائعة

  • استخدامه كـ key داخل map على قائمة — المفاتيح يجب أن تأتي من بيانات القائمة نفسها لا من useId
  • استخدامه كمفتاح تخزين مؤقت (cache key) — القيمة مستقرة أثناء التركيب لكنها قد تختلف بين رندر وآخر لنفس البيانات

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار REACT الكامل بالعربي.