لو كانت صياغة JSX تكتفي بعرض وسوم تشبه الـ HTML فقط لكانت بلا فائدة حقيقية. القوة الخارقة لـ JSX تكمن في قدرتك على كسر حاجز النصوص الجامدة وحقن أكواد جافا سكريبت حية وديناميكية في قلب الواجهة مباشرة!
لكي تفتح بوابة السحر البرمجي وتخبر محرك ريأكت أنك ستنتقل من كتابة وسم عادي إلى كتابة كود جافا سكريبت، نستخدم مفتاح المعجزة: الأقواس المجعدة { } (Curly Braces).
عندما تضع الأقواس المجعدة { } داخل كود JSX، يمكنك أن تكتب داخلها تعبيراً برمجياً (Expression) فقط، ولا يمكنك كتابة جملة برمجية (Statement). ما الفارق الهندسي بينهما؟
يمكنك زرع الأقواس المجعدة في مكانين أساسيين لا غنى عنهما:
| 1 | <h1>مرحباً يا {username}</h1> |
| 2 |
| 1 | <img src={userAvatar} /> |
| 2 |
ℹ️ معلومة
(لاحظ أننا هنا نحذف علامات التنصيص "" ونستبدلها بالأقواس مباشرة).
دعنا نرى كيف نكتب التعابير البرمجية المختلفة داخل الـ JSX بشكل احترافي ومباشر:
| 1 | function UserProfile() { |
| 2 | // متغيرات جافا سكريبت عادية |
| 3 | const firstName = "أحمد"; |
| 4 | const lastName = "المصري"; |
| 5 | const age = 26; |
| 6 | const siteUrl = "https://nouvil.net"; |
| 7 | const avatarImage = "user-profile.jpg"; |
| 8 | |
| 9 | // دالة برمجية بسيطة |
| 10 | const getFullName = (first, last) => { |
| 11 | return `${first} ${last}`; |
| 12 | }; |
| 13 | |
| 14 | return ( |
| 15 | <div className="profile-card"> |
| 16 | {/* 1. طباعة متغير ديناميكي مباشر */} |
| 17 | <h2>مرحباً بك، {firstName}</h2> |
| 18 | |
| 19 | {/* 2. استدعاء دالة برمجية وإنتاج قيمتها فوراً */} |
| 20 | <p>الاسم الكامل: {getFullName(firstName, lastName)}</p> |
| 21 | |
| 22 | {/* 3. إجراء عمليات رياضية داخل الواجهة */} |
| 23 | <p>العمر بعد خمس سنوات سيكون: {age + 5} عاماً</p> |
| 24 | |
| 25 | {/* 4. تمرير قيمة ديناميكية لسمة الرابط والصورة بدون علامات تنصيص */} |
| 26 | <a href={siteUrl}>زيارة حسابك في نوفيل</a> |
| 27 | <img src={avatarImage} alt={firstName} /> |
| 28 | </div> |
| 29 | ); |
| 30 | } |